Java泛型:理解和应用案例
Java泛型是一种在编译时提供类型安全的方式,它允许在声明类、接口和方法时使用类型参数。泛型的主要目的是提供编译时类型检查,以避免运行时的ClassCastException
,并使代码更加灵活和可重用。
理解Java泛型1. 类型参数:在类、接口或方法声明中使用尖括号<>
来指定类型参数。
- 类型擦除:Java泛型在编译时被擦除,这意味着运行时泛型信息不保留,因此不能通过反射获取泛型类型。
- 通配符:使用
?
来表示未知类型,可以是任何类型。 - 泛型边界:可以使用
extends
和super
关键字来指定类型参数的边界。
应用案例####1.泛型类```javapublic class Box {
private T t;
public void set(T t) { this.t = t; }
public T get() { return t; }
}
// 使用Box
integerBox.set(10);
System.out.println(integerBox.get());
Box
stringBox.set(“Hello”);
System.out.println(stringBox.get());####2.泛型方法
javapublic
for (T element : array) {
System.out.print(element + “ “);
}
System.out.println();
}
// 使用printArray(new Integer[]{1,2,3});
printArray(new String[]{“Hello”, “World”});####3.泛型接口
javapublic interface Generator
T next();
}
public class RandomGenerator implements Generator
private static final Random rand = new Random();
@Override public Integer next() {
return rand.nextInt();
}
}
// 使用Generator
System.out.println(gen.next());####4.泛型边界
javapublic class NumberBox
private T number;
public void set(T number) { this.number = number; }
public T get() { return number; }
}
// 使用NumberBox
intBox.set(10);
System.out.println(intBox.get());####5.通配符
javapublic void printList(List<?> list) {
for (Object element : list) {
System.out.print(element + “ “);
}
System.out.println();
}
// 使用List
intList.add(1);
intList.add(2);
printList(intList);
List
stringList.add(“Hello”);
stringList.add(“World”);
printList(stringList);
```泛型提供了一种类型安全的集合操作方式,使得代码更加灵活和健壮。通过使用泛型,你可以编写出更加通用和可重用的代码。
还没有评论,来说两句吧...