当前位置:首页 » 编程语言 » 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-07-12 12:11:16 浏览:844
开心消消乐服务器繁忙什么情况 发布:2025-07-12 12:11:14 浏览:239
数据库的封锁协议 发布:2025-07-12 12:10:35 浏览:724
如何配置一台长久耐用的电脑 发布:2025-07-12 11:43:03 浏览:602
昆明桃源码头 发布:2025-07-12 11:38:45 浏览:568
大司马脚本挂机 发布:2025-07-12 11:38:35 浏览:459
数据库实时监控 发布:2025-07-12 11:31:33 浏览:743
vb6反编译精灵 发布:2025-07-12 11:23:12 浏览:998
模拟存储示波器 发布:2025-07-12 11:10:58 浏览:814
怎么查看安卓真实运行内存 发布:2025-07-12 11:08:39 浏览:883