所以我有这个C类,我想得到代表c表示的数组的Class对象。可能吗?我找不到任何办法......
澄清:我所拥有的其他地方:
Class<?> c = Class.forName("data.Person");
好的,我现在有了这个班级c
。我希望拥有代表一系列人的Class
。就像我一样:
Class<?> cs = data.Person[].class;
但我想用反思来做。我对原始课程一无所知,但对它的引用c
。
答案 0 :(得分:6)
我想你想要Array.newInstance(c, 0).getClass()
。
答案 1 :(得分:2)
要创建某种数组类型的Class实例,您还可以使用Class.forName()。您只需要使用[L
和;
围绕基本类型([
的数量是维度数),所以
String[].class
的一维数组类将为[Ljava.lang.String;
,String[][].class
的二维数组类将为[[Ljava.lang.String;
。 [Ldata.Person;
这意味着您需要做的就是
[L
和;
[
。因此,对于动态c
,您可以使用类似
Class.forName(c.isArray()?"["+c.getName():"[L"+c.getName()+";")