我使用以下技巧来获取特定类的数组类型:

@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/

10-09 05:04