我使用以下技巧来获取特定类的数组类型:
@SuppressWarnings("unchecked")
public static <T> Class<T[]> getArrayType(Class<T> componentType) {
String arrayClassName = "[L" + componentType.getName() + ";";
try {
return (Class<T[]>) Class.forName(arrayClassName);
} catch (ClassNotFoundException e) {
throw new UnexpectedException("Can't get the array type for " + componentType, e);
}
}
但是,还有其他更优雅的方式来做到这一点吗?
最佳答案
也许使用Array.newInstance(),它返回给定类型的数组。
做类似的事情:
return Array.newInstance(someClass, 0).getClass()
可能会给您您想要的东西。
希望能有所帮助。
关于java - Java中的Class.getArrayType?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4719932/