Java 泛型Generics是 Java 5 引入的一个重要特性它的主要作用包括1.类型安全在编译时进行类型检查避免运行时出现ClassCastException确保集合中存储的是同一类型的数据例如ListString只能存储 String 类型的对象2.消除强制类型转换使用泛型后不需要手动进行类型转换代码更简洁可读性更好// 不使用泛型ListlistnewArrayList();list.add(Hello);Strings(String)list.get(0);// 需要强制转换// 使用泛型ListStringlistnewArrayList();list.add(Hello);Stringslist.get(0);// 无需强制转换3.代码复用可以编写适用于多种类型的通用代码避免为不同类型重复编写相似的逻辑// 泛型方法publicTTfindFirst(ListTlist){returnlist.isEmpty()?null:list.get(0);}// 可以用于任何类型StringsfindFirst(stringList);IntegerifindFirst(integerList);4.提高代码可读性通过泛型参数可以清楚地表达代码的意图让代码更易于理解和维护5.支持泛型类、接口和方法泛型类class BoxT { private T item; }泛型接口interface ComparatorT { int compare(T o1, T o2); }泛型方法public T void print(T item) { }6.通配符支持?- 无界通配符? extends T- 上界通配符? super T- 下界通配符// 上界通配符 - 可以读取不能写入voidprocess(List?extendsNumberlist){Numbernlist.get(0);// 可以// list.add(10); // 编译错误}// 下界通配符 - 可以写入不能读取为具体类型voidaddNumbers(List?superIntegerlist){list.add(10);// 可以// Integer i list.get(0); // 编译错误}7.类型擦除Java 泛型在编译时存在运行时会被擦除泛型信息主要用于编译时的类型检查这保证了与旧版本 Java 的兼容性总结泛型让 Java 代码更加类型安全、可读、可维护同时提供了强大的代码复用能力。它是现代 Java 编程中不可或缺的重要特性。