获取给定类的数组类的Java反射
所以我有一个c类,我想得到一个Class对象,它代表一个c类型的数组。可能吗?我找不到任何方法 澄清:在其他地方我有:获取给定类的数组类的Java反射,java,arrays,reflection,Java,Arrays,Reflection,所以我有一个c类,我想得到一个Class对象,它代表一个c类型的数组。可能吗?我找不到任何方法 澄清:在其他地方我有: Class<?> c = Class.forName("data.Person"); 但我想用反思来做。我对原始类一无所知,但对它的引用是c。我认为您需要Array.newInstance(c,0).getClass()要创建某种数组类型的类实例,还可以使用class.forName()。您只需要用[L和;围绕基本类型(编号[是尺寸编号),因此 一维字符串数组的
Class<?> c = Class.forName("data.Person");
但我想用反思来做。我对原始类一无所知,但对它的引用是
c
。我认为您需要Array.newInstance(c,0).getClass()
要创建某种数组类型的类实例,还可以使用class.forName()。您只需要用[L
和;
围绕基本类型(编号[
是尺寸编号),因此
- 一维字符串数组的类
String[]。类
将是
,[Ljava.lang.String;
- 二维字符串数组的类
String[][]。
类将是
[[Ljava.lang.String;
- 在您的示例中,data.Person[]类将是
[Ldata.Person;
- 如果类型不是数组,则添加
和[L
;
- 如果类型已经是数组,则在开始时添加另一个
[
c
可以使用
Class.forName(c.isArray()?"["+c.getName():"[L"+c.getName()+";")
谢谢,这很有效!
Class.forName(c.isArray()?"["+c.getName():"[L"+c.getName()+";")