前言
要操作一个类的字节码,需要先获得到这个类的Class,那么怎么获得java.lang.Class呢?
一、获取Class的第一种方式
Class.forName("完整类名");
注意:
- 静态方法
- 方法的参数是一个字符串
- 字符串需要的是一个完成的类名
- 完整类名必须带有包命:java.lang…(也不能省略)
例如:
Class c1 = Class.forName("java.lang.String");
//c1代表String.class文件或c1代表String类型。
二、获取Class的第二种方式
Class c2 = 对象.getClass();
注意:
Java对象中任何一个对象都有的方法:getClass() 。
例如:
String s = "abc";
Class c2 = s.getClass();
//c2代表String.class字节码文件或c2代表String类型。
System.out.println(c1 == c2);
//true “==” 判断的是对象的内存地址
三、获取Class的第三种方式
Class c3 = 任何类型.class;
注意:Java语言中任何一种类型包括基本数据类型,他都有“class“属性
例如:
Class c3 = String.class;
//c3代表String类型。