Mas*_*eek 2 java generics object type-parameter instancetype
是否可以将Objects实例类型作为泛型的类型参数传递?类似于以下内容:
Object obj = new Double(3.14); //Instance type Double
//Could I do the following?
Item<obj.getInstanceType()> item = new Item<obj.getInstanceType()>(obj);
public class Item<T> {
private T item;
public Item(T item) {
this.item = item
}
public T getItem() {
return this.item;
}
}
Run Code Online (Sandbox Code Playgroud)
不..泛型类型应该在编译时知道.
泛型可以在编译时捕获可能的运行时异常.
List<Integer> list = new ArrayList<Integer>();
//..some code
String s = list.get(0); // this generates compilation error
Run Code Online (Sandbox Code Playgroud)
因为编译器知道这list只是为了存储Integer对象并将从列表中获取的值分配给String肯定是一个错误.如果在运行时确定泛型类型,则这将是困难的.