java 中獲取字節碼對象的三種方式


package cn.ms.test;

public class GetClassObject {
    public static void main(String[] args) {
        getClassObjectMethod1();
        getClassObjectMethod2();
        getClassObjectMethod3();
    }
    
    /*
     * 方式一
     * 通過對象獲得
     * */
    private static void getClassObjectMethod3() {
        GetClassObject getClassObject1 = new GetClassObject();
        System.out.println(getClassObject1.getClass().getName());
    }

    /*
     * 方式二 重點掌握
     * 通過給定類的字符串名稱(全類名)就可獲得該類的字節碼文件對象,更為擴展。
     * (第一種和第三種都不具有擴展性)
     * */
    private static void getClassObjectMethod2() {
        Class<GetClassObject> getClassObject2 = null;
        try {
            getClassObject2 = (Class<GetClassObject>) Class.forName("cn.ms.test.GetClassObject");
            System.out.println(getClassObject2.getName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    
    /*
     * 方式三
     * 任何數據類型都有一個靜態的屬性 .class來獲取其對應類的字節碼文件對象
     * 相對簡單,但是還是要明確用到類中的靜態成員。還是不夠擴展!
     * */
    private static void getClassObjectMethod1() {
        Class getClassObject3 = GetClassObject.class;
        System.out.println(getClassObject3.getName());
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM