浏览 2495 次
锁定老帖子 主题:关于Class Object的获得方法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-11
在这里总结一下取得这种值的几种常用方法: 1.通过getClass()方法取得 这种方式每个Class都具有,因此每个具体的对象都具有该方法 如: String str = "abc" ; Class c1 = str.getClass() ; System.out.println("c1 type name = "+c1.getName()) ; //注意用int = i 不行,这里需要对象,而不是原生的数据类型 Integer i = new Integer(3000) ; Class c2 = i.getClass() ; System.out.println("c2 type name ="+c2.getName()) ; 输出的结果分别是java.lang.String java.lang.Integer 2.通过getSuperClass()方法 这里应该说是getSuperClass的一种特殊情况吧,也是同样使用于所有Class,注意是Class,通过该方法可以获得给定对象的父类的类型,示例如下: String str2 = "abc" ; Class c3 = str2.getClass() ; Class c4 = c3.getSuperclass() ; System.out.println("c4 type name = "+c4.getName()) ; 结果为java.lang.Object 3.通过Class.forName(String msg)来取得msg所代表的对象 在JDBC中我们经常使用Class.forName(DBDRIVER)来获得驱动,这种用法比较常见 其他的象Class.forName("java.lang.String")也是一样的用法 4.通过.class来获得 这主要是适用于具体的Class,这里可以用到原生数据类型如int,前面的getClass()方法则不适用于原生数据类型 用法如下: Class c5 = String.class ; Class c6 = int.class ; Class c7 = int[].class ; Class c8 = Integer.class ; System.out.println("c5 type name = "+c5.getName()) ; System.out.println("c6 type name = "+c6.getName()) ; System.out.println("c7 type name = "+c7.getName()) ; System.out.println("c8 type name = "+c8.getName()) ; 输出的结果也分别是相应的类型,这里int属于原生数据类型,是可以用.class这种方法类取得Class类型的,而int[]也属于一种对象,其本身也具有适用.class这种方法取得Class的能力 5.对于原生的数据类型的包装类,通过.TYPE方式 这种适用方式仅限于原生数据类型的包装类,适用方式如下: Class c9 = Integer.TYPE ; Class c10 = Byte.TYPE ; Class c11 = Character.TYPE ; System.out.println("c9 type name = "+c9.getName()) ; System.out.println("c10 type name = "+c10.getName()) ; System.out.println("c11 type name = "+c11.getName()) ; 输出的结果分别是: c9 type name = int c10 type name = byte c11 type name = char 当然,这些原生数据类型的包装类同时也可以用getClass(),.class方法取得相应的Class Object 以上内容希望对大家有所帮助,呵呵 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |