反射之获取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属性


    }
}

posted on 2021-12-11 15:46  菜小疯  阅读(37)  评论(0编辑  收藏  举报