小編給大家分享一下Java中反射如何獲取類結構信息,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)建站始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達十年累計超上千家客戶的網(wǎng)站建設總結了一套系統(tǒng)有效的網(wǎng)絡營銷推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:水電改造等企業(yè),備受客戶贊許。
在反射機制的處理過程之中,不僅僅只是實例化對象的處理操作,更多的情況下還有類的組成結構操作,任何一個類的基本組成結構都是父類(父接口)、包、屬性、方法(構造方法、普通方法)。
一個類的基本信息主要包括類所在的包名稱、父類的定義、父接口的定義。
范例:定義一個程序類
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("【信息發(fā)送】www.mldn.cn"); } } }
如果此時想獲得該類的一些基礎信息則可以通過Class類中的如下方法:
1、獲取包名稱:public Package getPackage()
2、獲取繼承父類:public Class super T> getSuperclass()
3、獲取實現(xiàn)父接口: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中反射如何獲取類結構信息”有了一定的了解,如果想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!