在Java中,如何动态确定数组的类型?
运行前3行发射在Java中,如何动态确定数组的类型?,java,Java,运行前3行发射 Object o = new Long[0] System.out.println( o.getClass().isArray() ) System.out.println( o.getClass().getName() ) Class ofArray = ??? 我怎么得到???长型?我可以解析字符串并执行Class.forname(),但这太糟糕了。最简单的方法是什么 公共类getComponentType() 返回表示数组的组件类型的类。如果此类不表示数组类,则此方法返
Object o = new Long[0]
System.out.println( o.getClass().isArray() )
System.out.println( o.getClass().getName() )
Class ofArray = ???
我怎么得到???长型?我可以解析字符串并执行Class.forname(),但这太糟糕了。最简单的方法是什么
公共类getComponentType()
返回表示数组的组件类型的类
。如果此类不表示数组类,则此方法返回null
只要写
public Class<?> getComponentType()
发件人:
公共类getComponentType()
返回表示数组的组件类型的类
。如果此类不表示数组类,则此方法返回null
@迪米特罗夫是正确的答案。将其放入代码中,如下所示:
Class ofArray = o.getClass().getComponentType();
非常简单 如果第一个元素为null,即字符串[]arr={null,“Chris”,“Joseph”};
Class ofArray = o.getClass().getComponentType();
public <T> Class<T> testArray(T[] array) {
return array.getClass().getComponentType();
}
Object maybeArray = ...
Class<?> clazz = maybeArray.getClass();
if (clazz.isArray()) {
System.out.printf("Array of type %s", clazz.getComponentType());
} else {
System.out.println("Not an array");
}
String[] arr = {"Daniel", "Chris", "Joseph"};
arr.getClass().getComponentType(); // => java.lang.String