首頁  >  文章  >  Java  >  java如何取得類別名

java如何取得類別名

WBOY
WBOY轉載
2023-05-03 16:55:072338瀏覽

如果我們要取得目前運行的類別名,怎麼來取得?

在Class類別中,有下列一個方法:

java如何取得類別名

#例如現在有一個類別Demo7.java

package pxx.test1;
 
public class Demo7 {
    public static void main(String[] args) {
        Demo7 demo7 = new Demo7();
        System.out.println(demo7.getClass().getName());
    }
}

運行結果:

java如何取得類別名

#上面就是直接這個物件呼叫了getClass()得到了Class對象,然後呼叫getName ()得到運行類別名稱。

那麼假如一個類別繼承了一個類,又怎麼取得目前類別名稱還有父類別名稱呢

Demo8.java

package pxx.test1;
 
public class Demo8 {
    int num;
    String name;
    public Demo8(){};
}

Demo9.java

package pxx.test1;
 
public class Demo9 extends Demo8 {
    public void test() {
        System.out.println(super.getClass().getName());
    }
    public static void main(String[] args) {
        new Demo9().test();
    }
}

上面我們就用super呼叫了一個getClass()方法,然後又來取得類別名,這裡要注意的是super只能呼叫父類別的非靜態方法,並且不能在static方法中調用,因為super與this一樣,是基於物件操作的。說回來,這裡呼叫父類別的getClass(),所以想得到父類別的類別名,好了,執行一下

java如何取得類別名

還是拿不到父類別的類別名,那我們去看一下這個geClass()方法,這個方法在Object物件裡面

java如何取得類別名

# 原來這個方法是一個final,也就是說,這個方法被其他類別繼承可以,但是不能被重寫,因此,this.getClass與super.getClass最終調用的都是Object類中的getClass方法,而這個方法的定義是返回Object的運行時類,所以,上面會返回自己的類名而不是父類別名稱。

那麼怎麼取得父類別的名字呢?

我們去到Class類別裡面去看一下,發現有下面這個方法:

java如何取得類別名

上面這個意思也就是說,會回傳這個目前呼叫類別的父類,拿到父類別之後我們依然可以用getName()來取得名字,上程式碼

package pxx.test1;
public class Demo9 extends Demo8 {
    public void test() {
        System.out.println(super.getClass().getSuperclass().getName());
    }
    public static void main(String[] args) {
        new Demo9().test();
 
    }
}

 執行結果:

java如何取得類別名

##這樣就拿到父類別的類別名稱 

######################################了

以上是java如何取得類別名的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除