什么是泛型?
泛型就是定义一种规范,这种规范规定了类、接口、方法中可以接受的数据类型。它允许类、接口和方法在定义时使用参数化类型。这样可以在不确定具体类型的情况下编写通用的代码,并在实际使用时指定具体的类型参数。
泛型的格式
在Java中,泛型的基本格式包括在类、接口或方法名后面使用尖括号(<>)来声明泛型参数。
泛型类: 在类名后面使用尖括号(<>)声明泛型参数。例如:
public class Box<T> {
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
-
在上面的例子中,
Box<T>
中的<T>
是泛型参数的声明,它表明这个类可以存储任意类型的数据。在类的实例化时,可以具体指定T
的类型,例如Box<Integer>
或Box<String>
。 -
也可以public class Box<T extends Object> 通过extends Object 来限制泛型只能接收Object类及其子类
泛型方法: 在方法的返回类型前使用尖括号(<>)声明泛型参数。例如:
public <T> T genericMethod(T t) {
// 方法体
return t;
}
-
在上面的例子中,
<T>
声明了一个泛型参数T
,并将其用于方法的参数类型和返回类型中。这使得genericMethod
方法可以接受任意类型的参数并返回相同的类型。 -
也可以public <T extends Object> T method(T t) 通过extends Object 来限制泛型只能接收Object类及其子类
</