我正在使用反射生成一些代码,需要在代码中获取描述某些数组类型的字符串。默认的API并没有真正实现这一点。
(new int[12]).getClass().getName()
返回[I
(new Date[2][]).getClass().getName()
返回[[Ljava.util.Date
结果是可解析的,但是分别从这两个中获取int[]
和java.util.Date[][]
是否有更简单,更好的方式?
答案 0 :(得分:4)
数组的简单名称是附加了“[]”的组件类型的简单名称。
答案 1 :(得分:3)
没有内置方法返回“漂亮的名字”(a.k.a是用Java源代码编写的名称),
getSimpleName()
返回“nice”名称:它只返回没有包的类名,并根据需要附加[]
。
如果您需要[]
的完全限定名称,那么您需要手动构建:
public static String getName(final Class<?> clazz) {
if (!clazz.isArray()) {
return clazz.getName();
} else {
return getName(clazz.getComponentType()) + "[]";
}
}