在Java中,泛型是一種編程語言特性,允許你在類、接口和方法中定義類型參數。這有助于提高代碼的可重用性和類型安全。要在Java中正確使用泛型變量,請遵循以下步驟:
要創建一個泛型類或接口,請在類名或接口名后面的尖括號(<>)內定義一個或多個類型參數。例如,創建一個泛型類Box
,可以這樣定義:
public class Box<T> {
private T item;
public void setItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
}
當你實例化一個泛型類或接口時,需要為類型參數提供具體的類型。例如,創建一個Box
類的實例,用于存儲字符串:
Box<String> stringBox = new Box<>();
stringBox.setItem("Hello, world!");
System.out.println(stringBox.getItem()); // 輸出 "Hello, world!"
有時,你可能希望編寫一個方法,該方法可以處理不同類型的泛型對象。在這種情況下,可以使用通配符?
表示未知類型。例如,創建一個方法,該方法接受一個Box
對象并打印其內容:
public static void printBox(Box<?> box) {
System.out.println(box.getItem());
}
你還可以創建泛型方法,這些方法在方法級別上定義類型參數。例如,創建一個泛型方法,該方法交換兩個變量的值:
public static <T> void swap(T[] array, int i, int j) {
T temp = array[i];
array[i] = array[j];
array[j] = temp;
}
你還可以創建泛型接口,這些接口在接口級別上定義類型參數。例如,創建一個泛型接口Comparator
,用于比較兩個對象:
public interface Comparator<T> {
int compare(T o1, T o2);
}
然后,你可以實現這個接口來創建自定義比較器:
public class StringLengthComparator implements Comparator<String> {
@Override
public int compare(String o1, String o2) {
return Integer.compare(o1.length(), o2.length());
}
}
總之,要在Java中正確使用泛型變量,請確保在聲明泛型類、接口和方法時定義類型參數,并在實例化和調用時為這些參數提供具體的類型。這將有助于提高代碼的可重用性和類型安全。