Java泛型(Generics)是JDK 5.0引入的一个新特性,它允许在定义类、接口和方法时使用类型参数。泛型的主要目的是提高Java程序的类型安全,消除类型转换的需要,并允许算法更加灵活地处理不同类型的数据。
基础概念:
<>
包围,如<T>
。class Box<T> { ... }
。优势:
ClassCastException
。类型:
interface Comparable<T> { ... }
。public <T> T getFirstElement(List<T> list)
。应用场景:
List
, Set
, Map
)都支持泛型。常见问题及解决方法:
ArrayList<T>
代替T[]
。?
),用于表示未知类型。通配符可以有上界(? extends T
)和下界(? super T
),用于限制未知类型的范围。T
表示类型(Type),E
表示元素(Element),K
表示键(Key),V
表示值(Value)等。这有助于提高代码的可读性。示例代码:
// 泛型类
public class Box<T> {
private T content;
public void setContent(T content) {
this.content = content;
}
public T getContent() {
return content;
}
}
// 泛型方法
public class GenericMethodExample {
public static <T> void printArray(T[] array) {
for (T element : array) {
System.out.println(element);
}
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
Box<Integer> intBox = new Box<>();
intBox.setContent(10);
System.out.println(intBox.getContent());
String[] strings = {"a", "b", "c"};
GenericMethodExample.printArray(strings);
}
}
在这个示例中,Box
是一个泛型类,可以存储任何类型的内容。GenericMethodExample
类中的printArray
方法是一个泛型方法,可以打印任何类型的数组。
领取专属 10元无门槛券
手把手带您无忧上云