问题描述
Class.typeName 或 Class.getTypeName() 已根据 Android 文档添加到 Api 26 中。有没有办法以其他方式获取类型名称?
解决方法
方法 getTypeName()
已在 Java 8 中添加,以实现在同一 Java 版本中添加的 Type.getTypeName()
方法(如 Class
实现 Type
)。
对于非数组类,结果与 getName()
相同。对于完全相同的结果,您可以使用
static String getTypeName(Class<?> cl)
{
if(!cl.isArray()) return cl.getName();
int dimensions;
for(dimensions = 0; cl.isArray(); cl = cl.getComponentType()) dimensions++;
String name = cl.getName();
StringBuilder sb = new StringBuilder(name.length() + dimensions * 2).append(name);
for(; dimensions > 0; dimensions--) sb.append("[]");
return sb.toString();
}
,
没办法。
Class.getTypeName()
是在 java 8 中添加的。Android 从 API 26 开始支持 java 8。