返回
你必须了解Java泛型机制的秘密武器!
后端
2023-11-29 08:48:28
泛型机制的秘密武器:
-
通用性: 用相同的代码处理各种类型的数据,实现代码复用。
-
类型安全: 避免类型转换错误,提升代码可靠性。
-
性能优化: 消除类型擦除带来的性能损耗。
泛型类的使用:
class Stack<T> {
private T[] elements;
private int size = 0;
private static final int DEFAULT_CAPACITY = 10;
@SuppressWarnings("unchecked")
public Stack() {
elements = (T[]) new Object[DEFAULT_CAPACITY];
}
public void push(T element) {
if (size == elements.length) {
resize(2 * elements.length);
}
elements[size++] = element;
}
public T pop() {
if (size == 0) {
throw new EmptyStackException();
}
T element = elements[--size];
elements[size] = null; // Eliminate obsolete reference
if (size > 0 && size == elements.length / 4) {
resize(elements.length / 2);
}
return element;
}
private void resize(int newCapacity) {
T[] temp = (T[]) new Object[newCapacity];
for (int i = 0; i < size; i++) {
temp[i] = elements[i];
}
elements = temp;
}
}
泛型接口的使用:
interface Stack<T> {
void push(T element);
T pop();
boolean isEmpty();
int size();
}
泛型方法的使用:
public static <T> List<T> copy(List<T> list) {
List<T> copy = new ArrayList<T>(list.size());
for (T element : list) {
copy.add(element);
}
return copy;
}
总结:
泛型机制是一项强大的工具,可以使Java代码更灵活、更可靠、更高效。善用泛型机制,可以让你的代码更加出色!