关于Class Object的获得方法

在使用反射的API时,经常需要取得Class Object类型的值
在这里总结一下取得这种值的几种常用方法:
[color=red]1.通过getClass()方法取得[/color]
这种方式每个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

[color=red]2.通过getSuperClass()方法[/color]
这里应该说是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

[color=red]3.通过Class.forName(String msg)来取得msg所代表的对象[/color]
在JDBC中我们经常使用Class.forName(DBDRIVER)来获得驱动,这种用法比较常见
其他的象Class.forName("java.lang.String")也是一样的用法

[color=red]4.通过.class来获得[/color]
这主要是适用于具体的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的能力

[color=red]5.对于原生的数据类型的包装类,通过.TYPE方式[/color]
这种适用方式仅限于原生数据类型的包装类,适用方式如下:

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

以上内容希望对大家有所帮助,呵呵 :D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值