您好,登錄后才能下訂單哦!
小編給大家分享一下Java中反射如何獲取類結構信息,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
在反射機制的處理過程之中,不僅僅只是實例化對象的處理操作,更多的情況下還有類的組成結構操作,任何一個類的基本組成結構都是父類(父接口)、包、屬性、方法(構造方法、普通方法)。
一個類的基本信息主要包括類所在的包名稱、父類的定義、父接口的定義。
范例:定義一個程序類
IMessageService:
interface IMessageService {public void send(); }
IChannelService:
interface IChannelService {public boolean connect(); }
AbstractBase:
public abstract class AbstractBase { }
Person:
public class Person extends AbstractBase implements IChannelService,IMessageService {@Overridepublic boolean connect() {return true; }@Overridepublic void send() {if (this.connect()) { System.out.println("【信息發送】www.mldn.cn"); } } }
如果此時想獲得該類的一些基礎信息則可以通過Class類中的如下方法:
1、獲取包名稱:public Package getPackage()
2、獲取繼承父類:public Class<? super T> getSuperclass()
3、獲取實現父接口:public Class<?>[] getInterfaces()
范例:獲得包名稱
public class JavaAPIDemo {public static void main(String[] args) { Class<?> cls = Person.class;//獲取指定類的Class對象Package pack = cls.getPackage();//獲取指定類的包定義System.out.println(pack.getName());//獲取包名稱} }
范例:獲取父類信息
public class JavaAPIDemo {public static void main(String[] args) {Class<?> cls = Person.class;Class<?> parent = cls.getSuperclass();//獲取指定類的Class對象System.out.println(parent.getName());System.out.println(parent.getSuperclass().getName()); // System.out.println(parent.getSuperclass().getSuperclass()); } }
范例:獲得父接口
public class JavaAPIDemo {public static void main(String[] args) {Class<?> cls = Person.class; //獲取指定類的Class對象Class<?> clazz[] = cls.getInterfaces();//獲取父接口的Class對象for (Class<?> temp : clazz){System.out.println(temp.getName());//獲取父接口的對象名稱 } } }
當獲取了一個類的Class對象后,就意味著這個對象可以獲取類中的一切繼承結構信息。
看完了這篇文章,相信你對“Java中反射如何獲取類結構信息”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。