Java是一種面向對象的編程語言,其中泛型也是一項非常重要的語言特性。泛型類和泛型方法可以使代碼更加靈活和具有通用性。
// 定義一個泛型類 class Box<T> { private T t; public void set(T t) { this.t = t; } public T get() { return t; } } // 使用泛型類 Box<Integer> intBox = new Box<>(); intBox.set(1); int value = intBox.get(); // 不需要強制類型轉換 Box<String> strBox = new Box<>(); strBox.set("Hello"); String str = strBox.get();
上面的代碼定義了一個泛型類Box,使用<T>來定義類型參數,可以使用任何類型作為參數,T是類型參數,可以把它看做是一個占位符。在使用Box類時,使用<Integer>來表示使用Integer類型作為類型參數,這樣可以避免轉換類型。在調用get方法時,返回值的類型也是Integer。
// 定義一個泛型方法 public static <T> T getMax(T[] array) { T max = array[0]; for (int i = 1; i < array.length; i++) { if (array[i].compareTo(max) >0) { max = array[i]; } } return max; } // 使用泛型方法 Integer[] intArray = new Integer[]{1, 2, 3, 4, 5}; Integer maxInt = getMax(intArray); String[] strArray = new String[]{"Hello", "World", "Java"}; String maxStr = getMax(strArray);
上面的代碼定義了一個泛型方法getMax,使用<T>來定義類型參數,可以使用任何類型作為參數。在方法體中,它可以與任何其他參數一樣使用,并且在方法返回時,返回值的類型也是T。
泛型類和泛型方法都可以提高代碼的重用性和可讀性。通過使用泛型,可以編寫高度通用的代碼,可以與多種數據類型一起使用。