溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java反射機制提供的功能是什么

發(fā)布時間:2021-05-22 09:47:14 來源:億速云 閱讀:127 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關java反射機制提供的功能是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1、功能說明

在運行判斷任何對象所屬的類。

運行時構造任何類的對象。

運行中判斷任何類所具有的成員變量和方法。

在運行過程中獲通信息。

運行時調用任何對象的成員變量和方法。

運行時處理注釋。

生成動態(tài)代理。

2、實例

@Test
public void test1() throws Exception {
    Class<Person> clazz = Person.class;
    //1.通過反射,創(chuàng)建Person類對象
    Constructor<Person> cons = clazz.getConstructor(String.class, int.class);
    Person person = cons.newInstance("Tom", 12);
    System.out.println(person);//Person{name='Tom', age=12}
 
    //2.通過反射,調用對象指定的屬性、方法
    //調用屬性
    Field age = clazz.getDeclaredField("age");
    age.setAccessible(true);
    age.set(person, 10);
    System.out.println(person.toString());//Person{name='Tom', age=10}
 
    //調用方法
    Method show = clazz.getDeclaredMethod("show");
    show.invoke(person);//my name is Tom and age is 10
 
    System.out.println("===================================");
    //通過反射,可以調用Person類的私有結構的。比如:私有的構造器、方法、屬性
    //調用私有的構造器
    Constructor<Person> cons1 = clazz.getDeclaredConstructor(String.class);
    cons1.setAccessible(true);
    Person p1 = cons1.newInstance("Bruce");
    System.out.println(p1);//Person{name='Bruce', age=0}
 
    //調用私有的屬性
    Field name = clazz.getDeclaredField("name");
    name.setAccessible(true);
    name.set(p1, "Jarry");
    System.out.println(p1);
 
    //調用私有的方法
    Method nation = clazz.getDeclaredMethod("nation", String.class);
    nation.setAccessible(true);
    Object nation1 = (String) nation.invoke(p1, "China");//相當于String nation = p1.showNation("China")
    System.out.println(nation1);//I come from China
}

Java有哪些集合類

Java中的集合主要分為四類:1、List列表:有序的,可重復的;2、Queue隊列:有序,可重復的;3、Set集合:不可重復;4、Map映射:無序,鍵唯一,值不唯一。

感謝各位的閱讀!關于“java反射機制提供的功能是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI