反射之获取Class
反射之获取Class
以下代码使用3种方法获取Class,即字节码文件:
package com.javalearn.reflect.get;
public class TestForGetClass {
public static void main(String[] args) {
try {
// 获取Class的第一种办法
Class c1 = Class.forName("java.lang.String"); // c1代表String类
Class c2 = Class.forName("java.util.Date"); // c2代表Date类
Class c3 = Class.forName("java.lang.Integer"); // c3代表Integer类
Class c4 = Class.forName("java.lang.System"); // c4代表System类
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 获取Class的第二种办法
String s = "abc";
Class c5 = s.getClass(); // c5代表String类,此时c5和c1内存地址相同,指向方法区中的同一份字节码文件
// 获取Class的第三种办法
Class c6 = String.class; // java中任何类都有.class属性
}
}