Class 对象相关
String getCanonicalName()
返回 Java 语言规范定义的基础类的规范名称, 比如 String.class, 返回的就是String,但是有两种特殊情况
- 匿名类或内部匿名类返回null
- 数组类型,对于数组元素类型,如果没有 canonical name 也返回null
private interface CallAdapter {
String responseType();
}
public static void main(String[] args) throws IOException {
addAdapter(new CallAdapter() {
@Override
public String responseType() {
return null;
}
});
System.out.println("CanonicalName : " + String.class.getCanonicalName());
int[] intArray = new int[4];
System.out.println("CanonicalName : " + intArray.getClass().getCanonicalName());
}
public static void addAdapter(CallAdapter adapter) {
String canonicalName = adapter.getClass().getCanonicalName();
System.out.println("CanonicalName : " + canonicalName);
}
依次输出
- CanonicalName : null
- CanonicalName : java.lang.String
- CanonicalName : int[]