您好,登錄后才能下訂單哦!
本篇內容主要講解“java如何獲取類名”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java如何獲取類名”吧!
如果我們要獲取當前運行的類名,怎么來獲取?
在Class類中,有如下一個方法:
比如現在有一個類Demo7.java
package pxx.test1; public class Demo7 { public static void main(String[] args) { Demo7 demo7 = new Demo7(); System.out.println(demo7.getClass().getName()); } }
運行結果:
上面就是直接這個對象調用了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(),因此想來得到父類的類名,好了,運行一下
還是拿不到父類的類名 ,那我們去看一下這個geClass()方法,這個方法在Object對象里面
原來這個方法是一個final,也就是說,這個方法被其他類繼承可以,但是不能被重寫,因此,this.getClass與super.getClass最終調用的都是Object類中的getClass方法,而這個方法的定義是返回Object的運行時類,所以,上面會返回自己的類名而不是父類名。
那么怎么獲取父類的名字呢?
我們去到Class類里面去看一下,發現有下面這個方法:
上面這個意思也就是說,會返回這個當前調用類的父類,拿到父類之后我們依然可以用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如何獲取類名”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。