成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java反射-屬性

buildupchao / 3096人閱讀

摘要:使用反射可以檢視類屬性成員變量,并且可以在運(yùn)行時(shí)。獲得屬性對象類是通過對象獲得的。示例如下數(shù)組包含類定義所有公共屬性實(shí)例。如屬性是靜態(tài)屬性,應(yīng)傳給方法,以替代例子中的參數(shù)。

使用反射可以檢視類屬性(成員變量),并且可以在運(yùn)行時(shí)get/set。這些是通過類java.lang.reflect.Field實(shí)現(xiàn)的。本文將詳細(xì)介紹javaField對象。別忘了參考Sun的JavaDoc。

獲得屬性對象

Field類是通過Class對象獲得的。示例如下:

Class aClass = ...//obtain class object
Field[] fields = aClass.getFields();

Field[]數(shù)組包含類定義所有公共(public)屬性實(shí)例。
如果你知道想訪問的屬性名稱,可以使用下方代碼:

Class  aClass = MyObject.class
Field field = aClass.getField("someField");

上訴示例將返回類MyObject定義的someField屬性對應(yīng)的Field實(shí)例,類似如下代碼:

public class MyObject{
  public String someField = null;
}

如果給予getField()方法的參數(shù)不存在對應(yīng)的屬性,將拋出NoSuchFieldException

屬性名稱

如已有Field實(shí)例,可以通過Field.getName()方法獲取屬性名稱,代碼如下 :

Field field = ... //obtain field object
String fieldName = field.getName();
屬性類型

可以使用Field.getType() 方法獲取屬性類型:

Field field = aClass.getField("someField");
Object fieldType = field.getType();
獲取、設(shè)置屬性值

一旦獲得Field引用,可以使用Field.get()Field.set()方法獲取或設(shè)置屬性值,代碼如下:

Class  aClass = MyObject.class
Field field = aClass.getField("someField");
MyObject objectInstance = new MyObject();
Object value = field.get(objectInstance);
field.set(objetInstance, value);

傳給getset方法的objetInstance必須是擁有指定屬性的一個(gè)類的實(shí)例。上例使用的是MyObject的實(shí)例,因?yàn)?b>someField是類MyObject的一個(gè)變量。
如屬性是靜態(tài)屬性(public static),應(yīng)傳nullget、set方法,以替代例子中的objectInstance參數(shù)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77252.html

相關(guān)文章

  • Java 反射教程

    摘要:反射非常強(qiáng)大和有用。另外,反射可以用在映射結(jié)果集的列名到對象的方法。本教程將深入介紹反射。本教程還將清除一些關(guān)于范型信息在運(yùn)行時(shí)可用性的認(rèn)知混淆。類對象使用反射時(shí),起點(diǎn)通常是需要使用反射檢視的類的對象。 Java反射可以在運(yùn)行時(shí)檢視類、接口、屬性和方法,而無需在編譯時(shí)知道類名、方法名等等。它也同樣使用反射支持實(shí)例化新的對象、調(diào)用方法和get/set屬性值。 Java反射非常強(qiáng)大和有用...

    klivitamJ 評論0 收藏0
  • Java知識(shí)點(diǎn)總結(jié)(反射-通過反射操作類的屬性和方法 )

    摘要:知識(shí)點(diǎn)總結(jié)反射通過反射操作類的屬性和方法知識(shí)點(diǎn)總結(jié)反射使用反射操作類的屬性和方法通過反射調(diào)用構(gòu)造方法,構(gòu)造對象其實(shí)調(diào)用無參構(gòu)造器張三調(diào)用有參構(gòu)造器李四通過反射調(diào)用普通方法獲取方法激活方法王武王武通過反射操作屬性是屬性,如果不寫會(huì)這個(gè)私有屬 Java知識(shí)點(diǎn)總結(jié)(反射-通過反射操作類的屬性和方法 ) @(Java知識(shí)點(diǎn)總結(jié))[Java, 反射] 使用反射操作類的屬性和方法: import ...

    jlanglang 評論0 收藏0
  • 封裝BeanMap以及java反射和內(nèi)省

    摘要:所以,我實(shí)現(xiàn)了一個(gè)稱為的類來應(yīng)用反射?,F(xiàn)在流行的語言大都支持反射。這組內(nèi)省主要是針對類進(jìn)行操作的,能夠獲取類的屬性信息??梢钥吹?,通過的內(nèi)省機(jī)制,解決了的最關(guān)鍵的問題。在封裝反射的時(shí)候,會(huì)充分考慮到各種情況。 BeanMap 學(xué)習(xí)具體的技術(shù)工具的好辦法就是些Demo、造輪子。所以,我實(shí)現(xiàn)了一個(gè)稱為BeanMap的類來應(yīng)用java反射API。 這個(gè)BeanMap的功能是將一個(gè)Bean包裝...

    張巨偉 評論0 收藏0
  • Java反射詳細(xì)介紹

    摘要:通過反射獲取帶參無返回值成員方法并使用設(shè)置安全檢查,訪問私有構(gòu)造函數(shù)必須創(chuàng)建實(shí)例這種不行,注意和方法需要傳遞參數(shù)測試復(fù)制這個(gè)功能獲取私有方法,同樣注意和的區(qū)別賦予訪問權(quán)限調(diào)用方法。 反射 目錄介紹 1.反射概述 1.1 反射概述 1.2 獲取class文件對象的三種方式 1.3 反射常用的方法介紹 1.4 反射的定義 1.5 反射的組成 1.6 反射的作用有哪些 2.反射的...

    ingood 評論0 收藏0
  • Reflection:Java反射機(jī)制的應(yīng)用場景

    近期在維護(hù)公司項(xiàng)目的時(shí)候遇到一個(gè)問題,因?yàn)閷?shí)體類中的 set 方法涉及到了業(yè)務(wù)邏輯,因此在給對象賦值的過程中不能夠使用 set 方法,為了實(shí)現(xiàn)功能,所以采用了反射的機(jī)制給對象屬性賦值,借此機(jī)會(huì)也了解了反射的一些具體用法和使用場景,分以下兩點(diǎn)對反射進(jìn)行分析: 反射的優(yōu)勢和劣勢 反射的應(yīng)用場景 反射的優(yōu)勢和劣勢 ??個(gè)人理解,反射機(jī)制實(shí)際上就是上帝模式,如果說方法的調(diào)用是 Java 正確的打開方式...

    浠ラ箍 評論0 收藏0
  • Java反射機(jī)制詳解

    摘要:反射機(jī)制的應(yīng)用實(shí)例在泛型為的中存放一個(gè)類型的對象。工廠模式可以參考現(xiàn)在我們利用反射機(jī)制實(shí)現(xiàn)工廠模式,可以在不修改工廠類的情況下添加任意多個(gè)子類。 學(xué)習(xí)交流群:669823128java 反射 定義 功能 示例概要:Java反射機(jī)制詳解| |目錄 1反射機(jī)制是什么 2反射機(jī)制能做什么 3反射機(jī)制的相關(guān)API 通過一個(gè)對象獲得完整的包名和類名 實(shí)例化Class類對象 獲取一個(gè)對象的父類與...

    paraller 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<