Java Generics - Không có trường tĩnh
Sử dụng generic, các tham số kiểu không được phép là tĩnh. Vì biến tĩnh được chia sẻ giữa các đối tượng nên trình biên dịch không thể xác định kiểu nào được sử dụng. Hãy xem xét ví dụ sau nếu các tham số kiểu tĩnh được cho phép.
Thí dụ
package com.tutorialspoint;
public class GenericsTester {
public static void main(String[] args) {
Box<Integer> integerBox = new Box<Integer>();
Box<String> stringBox = new Box<String>();
integerBox.add(new Integer(10));
printBox(integerBox);
}
private static void printBox(Box box) {
System.out.println("Value: " + box.get());
}
}
class Box<T> {
//compiler error
private static T t;
public void add(T t) {
this.t = t;
}
public T get() {
return t;
}
}
Vì stringBox và integerBox đều có biến kiểu tĩnh nhìn chằm chằm nên không thể xác định được kiểu của nó. Do đó, các tham số kiểu tĩnh không được phép.