java泛型的高级用法
Java ���型提供了强大的泛型机制,可以在编译时检查类型安全,并且可以编写通用的代码,使得代码更加灵活和重用。除了基本的泛型用法外,还有一些高级的泛型用法,以下是一些常见的高级泛型用法:
()-
泛型通配符(Wildcard):通配符用于表示未知类型,可以增加泛型的灵活性。主要包括上界通配符 [] arrayOfLists = new List[2]; arrayOfLists[0] = new ArrayList(); arrayOfLists[1] = new LinkedList();
- 泛型类型推断:
List list = new ArrayList(); // 使用了钻石操作符
import java.util.*; public class Main { public static void main(String[] args) { // 泛型通配符示例 List stringList = new ArrayList(); stringList.add("Hello"); stringList.add("World"); printList(stringList); // 泛型方法示例 Integer sum = add(10, 20); System.out.println("Sum: " + sum); // 泛型接口示例 MyInterface myInterface = new MyImplementation(); myInterface.doSomething("Generic Interface"); // 泛型类的继承示例 SubClass subClass = new SubClass(); subClass.value = 100; System.out.println("Value: " + subClass.value); // 泛型限定和约束示例 processNumber(10); // 泛型擦除与反射示例 MyClass myObject = new MyClass(String.class); System.out.println("Type: " + myObject.type.getName()); // 泛型数组示例 List[] arrayOfLists = new List[2]; arrayOfLists[0] = new ArrayList(); arrayOfLists[1] = new LinkedList(); System.out.println("Array Size: " + arrayOfLists.length); // 泛型类型推断示例 List list = new ArrayList(); list.add("Java Generics"); System.out.println("List: " + list.get(0)); } public static void printList(List list) { for (Object element : list) { System.out.println(element); } } public static T add(T a, T b) { return a; // 这里仅作举例 } interface MyInterface { void doSomething(T item); } static class MyImplementation implements MyInterface { @Override public void doSomething(T item) { System.out.println("Doing something with: " + item); } } static class GenericClass { T value; } static class SubClass extends GenericClass { // 子类可以继承父类的泛型类型 } public static void processNumber(T number) { System.out.println("Number is: " + number); } static class MyClass { private Class type; public MyClass(Class type) { this.type = type; } } }
The End