所以我有这个类 c,我想获取表示 c 表示的类型数组的 Class 对象。可能吗?我找不到任何方法...
澄清:我在其他地方:
Class<?> c = Class.forName("data.Person");
好的,所以我c现在有这门课。我想拥有Class代表人的数组。就像我做的一样:
Class<?> cs = data.Person[].class;
但我想通过反思来做到这一点。我对原始类一无所知,但c对它的引用。
所以我有这个类 c,我想获取表示 c 表示的类型数组的 Class 对象。可能吗?我找不到任何方法...
澄清:我在其他地方:
Class<?> c = Class.forName("data.Person");
好的,所以我c现在有这门课。我想拥有Class代表人的数组。就像我做的一样:
Class<?> cs = data.Person[].class;
但我想通过反思来做到这一点。我对原始类一无所知,但c对它的引用。
我想你想要Array.newInstance(c, 0).getClass()。
要创建某些数组类型的 Class 实例,您还可以使用 Class.forName()。您只需要用[Land包围基本类型;(数字[是维度数),所以
String[].class将是[Ljava.lang.String;,String[][].class将是[[Ljava.lang.String;.[Ldata.Person;这意味着您需要做的就是
[L并且;如果类型不是数组,[如果类型已经是数组,则在开始时添加另一个。所以对于动态c你可以使用类似的东西
Class.forName(c.isArray()?"["+c.getName():"[L"+c.getName()+";")