读书人

界别getName、getCanonicalName与getS

发布时间: 2012-12-28 10:29:05 作者: rapoo

区分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.SerializerUnit4Mapcom.shansun.seri.json.JsonSerialize$SerializerUnit4MapSerializerUnit4Map

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

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

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

?

?

?


哈哈

读书人网 >编程

热点推荐