详解Java中的泛型(泛型的语法,擦除机制,泛型的上界)
Java泛型提供了编译时类型安全检查的机制,允许在类或方法中使用类型参数。泛型的语法涉及将类型参数放在类名后面,如class Box<T>
。擦除是指在运行时泛型类型信息不保留,只保留最基本的类型信息。泛型的上界是指可以指定类型参数必须是某个特定类型或其子类型。
以下是一个简单的泛型类和方法示例:
// 定义一个泛型类
class Pair<T> {
private T first;
private T second;
public Pair(T first, T second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return first;
}
public T getSecond() {
return second;
}
}
// 定义一个泛型方法
public class GenericMethodTest {
public <T> void print(T t) {
System.out.println(t);
}
public static void main(String[] args) {
Pair<String> pair = new Pair<>("Hello", "World");
System.out.println(pair.getFirst());
System.out.println(pair.getSecond());
GenericMethodTest test = new GenericMethodTest();
test.print("Generic Types");
test.print(123);
test.print(123.456);
}
}
在这个示例中,Pair<T>
是一个带有一个类型参数T
的泛型类,可以存储两个相同类型的对象。GenericMethodTest
类中的print
方法是一个泛型方法,它可以接受任何类型的参数并打印出来。在main
方法中,我们创建了一个Pair<String>
对象,并使用泛型类和方法。
评论已关闭