如何在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;