🚀掌握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 static void 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 static double 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) {
ArrayList names = 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) {
HashMap map = 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 开发都至关重要。