Java泛型是一種在編譯時期類型安全性的機制,它允許在定義類、接口、方法時使用一個或多個類型參數,從而可以在代碼中使用不特定的類型。
Java泛型的主要用法包括:
定義泛型類:通過在類名后面使用尖括號<>定義一個或多個類型參數,可以在類中使用這些類型參數,以實現對不特定類型的支持。例如:class MyClass<T> { ... }
定義泛型接口:與泛型類類似,通過在接口名后面使用尖括號<>定義一個或多個類型參數,可以在接口中使用這些類型參數。例如:interface MyInterface<T> { ... }
定義泛型方法:通過在方法的返回類型前使用尖括號<>定義一個或多個類型參數,可以在方法中使用這些類型參數,以實現對不特定類型的支持。例如:<T> void myMethod(T t) { ... }
通配符類型:使用通配符?表示不確定的類型,可以用于泛型方法的參數類型、泛型類的類型參數、泛型限定等地方。例如:List<?> list = new ArrayList<>();
上界限定:通過使用extends關鍵字,指定泛型類型的上界,表示類型參數必須是指定的類或其子類。例如:<T extends Number> void myMethod(T t) { ... }
下界限定:通過使用super關鍵字,指定泛型類型的下界,表示類型參數必須是指定的類或其父類。例如:<T super Number> void myMethod(T t) { ... }
通過使用泛型,可以提高代碼的可讀性和類型安全性,減少類型轉換的錯誤和使用Object類型的需求,使得代碼更加靈活和可重用。