这个问题在这里已经有答案了:
获取组件类型的数组类
(4个答案)
(4个答案)
三年前关闭的
这是一个变量Class<&燃气轮机;cls
,现在我想得到另一个数组类对象
哪个组件类型是cls
例如,如果cls
=String.class
,我想得到String[].class
;如果cls
=int.class
,我想获得int[].class
,我该怎么办
你看,从String[]获取
:String.class
非常容易。class
类<&燃气轮机;arrayCls=String[].class;
if(arrayCls.isArray()){
类<;?>;cls=arrayCls.getComponentType();
}
但我找不到简单的方法来做相反的事情
以下是一种可能的解决方案:
类<&燃气轮机;clazz=String.class;
类别<&燃气轮机;arrayClass=Array.newInstance(clazz,0.getClass();
请问有没有更好的方法
赫吉格的答案有所改进:
@SuppressWarnings(“未选中”)
静态<;T>;类别<;?扩展T[]>;getArrayClass(类别<;T>;clazz){
return(Class<;?扩展T[]>;)数组.newInstance(clazz,0).getClass();
}
它们在调用时都实例化了一个数组对象。要获取数组类型,请使用
类<&燃气轮机;子类型=。。。;
类别<&燃气轮机;arrayType=getArrayClass(childType);