区分getName、getCanonicalName与getSimpleName

举例,现有一个类如下:

 

package com.shansun.seri.json;

public class JsonSerialize implements Serialize {
	...
	public static class SerializerUnit4Map {
	}
	...
}

 分别调用标题中的三个方法得到后面的输出:

 

String canonicalName = SerializerUnit4Map.class.getCanonicalName();
System.out.println(canonicalName);
String name = SerializerUnit4Map.class.getName();
System.out.println(name);
String simpleName = SerializerUnit4Map.class.getSimpleName();
System.out.println(simpleName);

 输出结果为:

 

com.shansun.seri.json.JsonSerialize.SerializerUnit4Map
com.shansun.seri.json.JsonSerialize$SerializerUnit4Map
SerializerUnit4Map	

其实getName、getCanonicalNam这两个方法没有什么不同的,对于大部分class来说,但是对于array或内部类等就显示出来了。

getName返回的是[[Ljava.lang.String之类的表现形式,而getCanonicalName返回的就是跟我们声明类似的形式。

BTW,在load class的时候需要的名字也是getName这种的名字。

 

 

 

你可能感兴趣的:(json,bean,Web)