java 泛型通过类型参数在编译期实现类型安全,定义时使用尖括号声明占位符,调用时传入具体类消除警告。核心做法是在类或方法签名后追加如 <t></t> 的标记,并在内部逻辑中用该占位符替代实际类型。这样既保证了集合操作的强类型约束,又避免了强制转换带来的运行时异常。

如何为自定义类添加泛型支持
为类添加泛型只需在类名后声明参数,并在成员变量和返回值中使用该参数即可。例如创建一个通用的包装器类,将任意类型的对象存入其中并安全取出。这种方式适用于需要复用同一套逻辑处理不同数据结构的场景。

public class Box<T> {
private T content;
public void put(T item) {
this.content = item;
}
public T get() {
return content;
}
public static void main(String[] args) {
Box<String> stringBox = new Box<>();
stringBox.put("Hello");
String s = stringBox.get(); // 无需强转
System.out.println(s);
}
}
泛型方法与普通静态方法的区别
泛型方法允许在方法级别独立于类的泛型参数定义新的类型变量。即使类本身没有泛型,方法也可以拥有自己的泛型签名。这在工具类中非常常见,用于处理各种类型的输入输出,如数组转列表或对象克隆。
立即学习“Java免费学习笔记(深入)”;

public class Utils {
public static <E> List<E> asList(E... elements) {
return java.util.Arrays.asList(elements);
}
public static void main(String[] args) {
List<Integer> list = Utils.asList(1, 2, 3);
System.out.println(list);
}
}
通配符 extends 与 super 的使用场景
当需要读取泛型集合中的数据时,使用 extends T> 限制上限;当需要向集合写入数据时,使用 super T> 限制下限。这遵循 PECS 原则(Producer Extends, Consumer Super),确保类型安全的同时提供最大的灵活性。


















