关于Java:从`String.class`获取`String[].class`,如果`String.class`是一个"运行时类型",那会怎么样?
- 论坛
- 关于Java:从`String.class`获取`String[].class`,如果`String.class`是一个"运行时类型",那会怎么样?
21 浏览
关于Java:从`String.class`获取`String[].class`,如果`String.class`是一个"运行时类型",那会怎么样?
这里有一个变量Class> cls
,现在我想要获得另一个Array Class Object
,其中组件类型是cls
。例如,如果cls
=String.class
,我想要获得String[].class
;如果cls
=int.class
,我想要获得int[].class
,我该怎么办呢?
你看,从String[].class
获得String.class
非常容易:
Class> arrayCls = String[].class; if(arrayCls.isArray()){ Class> cls = arrayCls.getComponentType(); }
但我找不到简单的方法来做反向操作。
这是一个可能的解决方案:
Class> clazz = String.class; Class> arrayClass = Array.newInstance(clazz,0).getClass();
是否有更好的方法来实现这个请?