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

java反射獲取屬性的值

發布時間: 2023-06-01 19:53:19

java 通過反射怎麼獲取方法中參數值

答案是沒法獲取。
首先反射獲取的是類、屬性、或者方法的定義,就拿方法來說,方法的定義是什麼呢?
方法的定義包括:方法名,方法的參數類型列表,方法的返回值類型。
方法的參數類型列表包括什麼呢?
包括每個參數的順序和參數類型。
參數值是什麼?是在這個方法被調用的時候傳入的參數叫做參數值。反射呢,是獲取的它的定義,並不牽扯調用,所以說沒法獲取。

⑵ java反射獲取一個實體類中的另外一個實體類中屬性的值,兩個實體類是關聯關系。

class Test{
public static void main(String[] args) {
A a = new A();
System.out.println(getValueInField(a,"b1","i"));
System.out.println(getValueInField(a,"b2","i"));
System.out.println(getValueInField(a,"b3","i"));
}
public static Object getValueInField(Object obj,String field,String name){
//三個參數分別是外部的類的對象obj,作為成員屬性的類的引用名,要查詢的類內部的屬性名
try {
Object o = obj.getClass().getDeclaredField(field).get(obj);
return o.getClass().getDeclaredField(name).get(o);
} catch (Exception e) {
System.out.println("查找失敗");
return null;
}
}
}

class A{
B b1 = new B(1);
B b2 = new B(2);
}
class B{
int i;
B(int i){
this.i = i;
}
}

⑶ 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 中 父類寫初始化代碼 反射獲取類中的所有屬性 並按照某種邏輯賦值(我是為了初始化Spring中的Bean)

這種想法是不可能實現的,父類中是獲取不到子類的屬性的,你需要換一個思路解決問題。

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

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

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

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:374
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:609
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:29
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:104
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:736
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:800
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:507
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:369