🚀掌握Java中的泛型:类型安全和可重用代码的终极指南💻
Java 中的泛型:综合指南
Java 中的泛型是 Java 5 中引入的一项强大功能,它允许开发人员编写可重用且类型安全的代码。虽然主要用于集合,但它们的应用范围远不止于此。泛型使您可以在编译时指定类型,从而减少运行时错误并增强代码的可读性。
泛型的关键概念
泛型的工作原理
class Box{ private T item; public void setItem(T item) { this.item = item; } public T getItem() { return item; } } public class Main { public static void main(String[] args) { Box stringBox = new Box<>(); stringBox.setItem("Hello"); System.out.println(stringBox.getItem()); Box intBox = new Box<>(); intBox.setItem(123); System.out.println(intBox.getItem()); } }
class Util { public staticvoid printArray(T[] array) { for (T element : array) { System.out.println(element); } } } public class Main { public static void main(String[] args) { Integer[] intArray = {1, 2, 3}; String[] strArray = {"A", "B", "C"}; Util.printArray(intArray); Util.printArray(strArray); } }
class MathUtils { public staticdouble square(T number) { return number.doubleValue() * number.doubleValue(); } } public class Main { public static void main(String[] args) { System.out.println(MathUtils.square(5)); // Integer System.out.println(MathUtils.square(5.5)); // Double } }
public static void printList(List> list) { for (Object item : list) { System.out.println(item); } }
public static void printNumbers(List extends Number> list) { for (Number num : list) { System.out.println(num); } }
public static void addNumbers(List super Integer> list) { list.add(10); // Only Integer or its subclass can be added }
泛型和集合
Java 集合框架严重依赖泛型来提供类型安全。
import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayListnames = new ArrayList<>(); names.add("Alice"); names.add("Bob"); for (String name : names) { System.out.println(name); } } }
import java.util.HashMap; public class Main { public static void main(String[] args) { HashMapmap = new HashMap<>(); map.put(1, "One"); map.put(2, "Two"); for (Integer key : map.keySet()) { System.out.println("Key: " + key + ", Value: " + map.get(key)); } } }
泛型的优点
泛型的局限性
结论
Java 中的泛型对于编写健壮、可维护且高效的代码至关重要。通过利用类型安全性和代码可重用性,开发人员可以更有效地处理数据。无论您是使用集合还是创建自定义类,掌握泛型对于高级 Java 开发都至关重要。