Java框架是一種重要的編程工具,它提供了許多便利的工具和功能。其中,泛型和反射是Java框架中最重要的兩個特性之一。
泛型是指在編寫代碼時,不必指定具體的數據類型,而在運行時再進行確定。泛型可以讓程序更加靈活和易于維護。
public class Box<T> { private T t; public void set(T t) { this.t = t; } public T get() { return t; } } Box<Integer> box1 = new Box<>(); box1.set(10); int i = box1.get(); Box<String> box2 = new Box<>(); box2.set("Hello"); String s = box2.get();
在上面的例子中,Box是一個泛型類,它可以持有任意類型的對象。在創建實例時,可以指定具體的類型(如Integer、String),也可以用默認的類型(如Object)。
反射是指在運行時獲取和操作對象的信息。Java中的反射機制可以讓程序運行時動態地獲取類的信息、調用方法、修改屬性等。
public class Student { private String name; public Student(String name) { this.name = name; } public void sayHello() { System.out.println("Hello, my name is " + name); } } Class<?> clazz = Class.forName("Student"); Constructor<?> constructor = clazz.getConstructor(String.class); Student student = (Student) constructor.newInstance("Tom"); Method method = clazz.getMethod("sayHello"); method.invoke(student);
在上面的例子中,我們使用反射機制動態地創建了一個Student對象,并調用了它的sayHello方法。
綜上所述,泛型和反射是Java框架中最重要的兩個特性之一。它們可以讓程序更加靈活和易于維護,也可以讓程序在運行時動態地獲取和操作對象的信息。