【发布时间】:2015-01-04 19:15:54
【问题描述】:
最近我在反射方面做了很多工作,并实现了这个小实用方法。我惊讶地发现第一个版本不能编译,但后者可以。
不编译:
public static <T> Class<T[]> getArrayClassOfType(Class<T> componentType) {
return Array.newInstance(componentType, 0).getClass();
}
编译和工作正常:
public static <T> Class<T[]> getArrayClassOfType(Class<T> componentType) {
Class c = Array.newInstance(componentType, 0).getClass();
return c;
}
两个问题:它有什么问题?有更好的方法吗?
这是第一个编译错误:
TypeUtils.java:[12,60] incompatible types: java.lang.Class<capture#1 of ? extends java.lang.Object> cannot be converted to java.lang.Class<T[]>
【问题讨论】:
标签: java generics reflection