java代码中<>符号的含义
在Java代码中,尖括号 <>
通常与泛型(Generics)相关,表示泛型类型参数的占位符。下面是尖括号在Java中的几种常见用法:
-
泛型类或接口的定义:
public class Box<T> { private T t; // ... }
这里
T
是一个类型参数,表示Box
类可以持有任何类型的数据。 -
泛型方法的定义:
public <T> void processList(List<T> list) { // ... }
processList
是一个泛型方法,它可以处理任何类型的List
。 -
实例化泛型类:
Box<String> stringBox = new Box<>();
这里创建了一个
Box
类的实例,指定了泛型类型参数为String
。 -
调用泛型方法:
processList(new ArrayList<String>());
调用泛型方法时,可以指定方法的泛型类型参数,也可以让编译器根据上下文推断。
-
泛型通配符:
List<?> list = new ArrayList<String>();
使用
?
作为通配符表示未知的类型,但可以读取列表中的元素,不能添加元素。 -
上界限定:
List<? extends Number> numberList = new ArrayList<Integer>();
使用
extends
关键字可以指定一个上界限定,numberList
可以持有任何Number
的子类实例。 -
下界限定:
List<? super String> stringSuperList = new ArrayList<Object>();
使用
super
关键字可以指定一个下界限定,stringSuperList
可以持有任何String
的超类实例。 -
类型擦除:
Java泛型在编译时提供类型安全,但在运行时会进行类型擦除,即泛型类型参数不会保留在字节码中。因此,泛型的类型信息仅在编译时有效。
泛型是Java中一个强大的特性,它允许编写更安全、更灵活的代码,同时保持类型安全。