當前位置:首頁 » 編程語言 » java反射獲取對象屬性

java反射獲取對象屬性

發布時間: 2023-09-04 18:54:01

java中如何通過反射獲取類的屬性

簡單的方法如下:
Class<?> cls=Class.forName(className);////////////////////////通過類的名稱反射類
Object obj=cls.newInstance();//////////////////////對象實例化
Field field=cls.getField(fieldName);/////這個對應的是屬性
fieldValue=field.get(obj);////這個就是屬性的值

㈡ Java反射設置私有屬性和獲取屬性

Java代碼

package ;

import java lang reflect Field;

import java lang reflect InvocationTargetException;

import java lang reflect Method;

public class TestBean {

private int age;

public static void main(String []args) throws InstantiationException IllegalAccessException SecurityException NoSuchFieldException{

try {

Class<?> class =Class forName( TestBean );

Object tObject=class newInstance();

Field field=class getDeclaredField( age );

field setAccessible(true); //設置私有屬性范圍

field set(tObject );

System out print(field get(tObject));

try {

Method method=class getMethod( setAge int class);

method invoke(tObject );

Method getMethod=class getMethod( getAge );

System out println(getMethod invoke(tObject));

} catch (NoSuchMethodException e) {

// TODO Auto generated catch block

e printStackTrace();

} catch (IllegalArgumentException e) {

// TODO Auto generated catch block

e printStackTrace();

} catch (InvocationTargetException e) {

// TODO Auto generated catch block

e printStackTrace();

}

} catch (ClassNotFoundException e) {

// TODO Auto generated catch block

e printStackTrace();

}

}

public int getAge() {

return age;

}

public void setAge(int age) {

this age = age;

}

lishixin/Article/program/Java/hx/201311/26324

㈢ java傳過來一個對象後如何得到這個對象的所有屬性值

1、過去某個類的某個屬性:

2,可以通過對象調用其屬性:

3,創建對象 :類名 對象名 = new 類名();

4,調用屬性:對象名.屬性

5,獲取某個對象的所有屬性

6,數組類型[] 數組名 = 對象名.getClass().getDeclaredFields();

7,使用反射
public static void main(String[] args) {
Model model = new Model();
Field fd = new Field();
fd.getField(model);
}
private void getField(Object model) {
java.lang.reflect.Field[] fields = model.getClass().getDeclaredFields();
for(java.lang.reflect.Field f:fields){
System.out.println(f.getName());
}
}

㈣ 如何利用java的反射機制動態的取得對象的屬性

Java.lang.Class
getDeclaredFields()

返回 Field 對象的一個數組,這些對象反映此 Class
對象所表示的類或介面所聲明的所有欄位。
Java.lang.reflect.Field

getName()

返回此 Field 對象表示的欄位的名稱。
getGenericType()

返回一個 Type 對象,它表示此 Field 對象所表示欄位的聲明類型。

以上是jdk裡面的一些用法,就是用你想要獲取對象的屬性得到它的class 然後調用 getDeclaredFields()就可以得到欄位數組了。
然後再用下面的方法就可以得到屬性名,類型這一些。
很簡單,要想實現現復雜的功能就再找一下api 找出相應的方法。

㈤ 什麼是java的反射

Java反射指的是對於任何的一個java類,我們都可以通過反射獲取到這個類的所有屬性和方法(包含私有的屬性方法),使用java反射我們也可以調用一個對象的任何方法。
我們知道Java是一門面向對象編程的語言,我們編程的時候,經常會將類的屬性進行封裝,然後提供public方法進行屬性的設置和獲取。類的屬性我們通常會設置成private的私有屬性,為的就是保護對象屬性不被隨意的修改和訪問。但是反射機制卻恰恰相反,通過反射,我們可以獲取到這些被保護的屬性和方法,並且可以修改和訪問他們。
在java中我們可以使用object對象的getClass();方法獲得Class的對象classObject;語法格式為 Class classObject = object.getClass() ;可以根據Class對象的方法獲取object對象的相關屬性和方法;
獲取object對象的名字可以使用 classObject.getName();獲取類的名稱,獲取到的結果包含包的名稱;
獲取object對象的包名稱,可以使用classObject.getPackage();獲取包的名稱;
獲取object對象的所有public屬性,可以使用classObject.getFields();方法,返回列表是屬性類Field[]對象列表;
獲取object對象所有屬性,可以使用classObject.getDeclaredFields();方法,返回的是所有屬性列表(包含private屬性);
獲取object對象某個特定的屬性,可以使用classObject.getField( fieldName );可以根據屬性名稱獲取屬性類的對象;
獲取object對象private屬性,可以使用classObject.getDeclaredField( fieldName );根據屬性名獲取屬性對象信息;
獲取object對象public方法,使用classObject.getMethods();可以獲取到方法類Method[]對象列表;
獲取object對象某個特定的public方法,使用classObject.getMethod( funName , Class... parameterTypes);根據方法名和方法參數類型列表,可以獲取到方法類的對象;
獲取object對象所有方法(包含private方法);使用classObject.getDeclaredMethods();可以獲取所有的方法對象列表;
獲取object對象某個特定方法(包含private方法),使用classObject.getDeclaredMethod ( funName, Class... parameterTypes );根據方法名和方法參數類型列表,可以獲取到類的特定方法(包含private方法);
獲取object對象類中所有的public構造方法,可以使用classObject.getConstructors(); 獲取到構造類Constructor的對象列表;
獲取object對象類中某個特定的構造方法,可以使用classObject.getConstructor( Class... parameterTypes ); 根據參數類型列表,獲取指定的構造函數對象;
獲取object對象類中所有的構造方法(包含private),可以使用classObject.getDeclaredConstructors(); 獲取到構造類Constructor的對象列表;
獲取object對象類中某個特定的構造方法(包含private),可以使用classObject.getDeclaredConstructor( Class... parameterTypes ); 根據參數類型列表,獲取指定的構造函數對象;

㈥ java反射取對象屬性值 不是通過get方法取值

反射不是通過get取值的,是通過該對象的信息,比如說名稱、內存地址等來訪問類,方法,屬性等,可以獲取任意對象的信息,但不能獲得私有屬性(private String s=「sd」;)的值,切記

推薦《JAVA核心技術》這本書會對你有幫助的

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726