如何在Java中获取给定类的Array类?
我有一个包含某种类型的Class
变量,我需要获取一个包含相应数组类的变量。 我能想到的最好的是:
Class arrayOfFooClass = java.lang.reflect.Array.newInstance(fooClass, 0).getClass();
有没有办法在不创建新实例的情况下执行此操作?
如果您不想创建实例,可以手动创建数组的规范名称并按名称获取类:
// Replace `String` by your object type. Class stringArrayClass = Class.forName( "[L" + String.class.getCanonicalName() + ";" );
但Jakob Jenkov在他的博客中指出,你的解决方案更好,因为它不需要摆弄字符串。
Class stringArrayClass = Array.newInstance(String.class, 0).getClass();
Class stringArrayOfClass = String[].class;