如何在 Android api 上访问 Class.typeName 21+
How to access Class.typeName on Android api 21+
根据 Android 文档,Class.typeName 或 Class.getTypeName() 已添加到 Api 26 中。有没有办法以其他方式获取类型名称?
不行。
Class.getTypeName()
已添加到 java 8。Android 支持 java 8,因为 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.typeName 或 Class.getTypeName() 已添加到 Api 26 中。有没有办法以其他方式获取类型名称?
不行。
Class.getTypeName()
已添加到 java 8。Android 支持 java 8,因为 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();
}