所以我有这个类 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()。您只需要用[L
and包围基本类型;
(数字[
是维度数),所以
String[].class
将是[Ljava.lang.String;
,String[][].class
将是[[Ljava.lang.String;
.[Ldata.Person;
这意味着您需要做的就是
[L
并且;
如果类型不是数组,[
如果类型已经是数组,则在开始时添加另一个。所以对于动态c
你可以使用类似的东西
Class.forName(c.isArray()?"["+c.getName():"[L"+c.getName()+";")