Java反射获取字节码以及判断类型

一、获取类的字节码的三种方法:
  

  1.使用Class.class

   1 Class<?> c1=String.class; 

  2.使用实例.getClass()

   1 String s=new String("1"); 2 Class<?> c2=s.getClass(); 

  3.使用Class.forName("类全名");

   1 Class<?> c3 = Class.forName("java.lang.String");

二、判断字节码是不是基本类型 

		//判断是不是基本类型
		System.out.println(c1.isPrimitive());//false

 三、判断是不是数组:

 1 //判断是不是数组 2 System.out.println(String[].class.isArray());//true 

四、判断基本类型的详细类型

 1 // 判断是不是int 基本类型 2 System.out.println(int.class==Integer.TYPE); 

完整代码

 1 package cn.lonecloud.Test;
 2 
 3 import org.junit.Test;
 4 
 5 public class ClassTest {
 6 
 7     @Test
 8     public void ClassTest() throws ClassNotFoundException{
 9         //获取类的字节码的三种方法:
10         //1.使用Class.class
11         Class<?> c1=String.class;
12 //        2.使用实例.getClass()
13         String s=new String("1");
14         Class<?> c2=s.getClass();
15 //        3.使用Class.forName("类全名");
16         Class<?> c3 = Class.forName("java.lang.String");
17         System.out.println(c1==c2);//true
18         System.out.println(c2==c3);//true
19         System.out.println(c1==c3);//true
20 //        获取基本类型的字节码
21         System.out.println(int.class);//int
22         //基本类型的字节码和其包装类是不一样的
23         System.out.println(Integer.class==int.class);//false
24         //判断是不是基本类型
25         System.out.println(c1.isPrimitive());//false
26         //判断是不是数组
27         System.out.println(String[].class.isArray());//true
28 //        判断是不是int 基本类型
29         System.out.println(int.class==Integer.TYPE);
30     }
31 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值