导航:首页 > 编程语言 > java反射获得属性的值

java反射获得属性的值

发布时间:2023-03-12 09:57:34

1. 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;
}
}

2. java如何用反射给对象赋值

java用反射给对象赋值的方法:

主程序:

3. java怎么通过反射得到属性的类型

Class<?>cls=Class.forName(className);//通过类的名称反射类
Objectobj=cls.newInstance();//对象实例化
Fieldfield=cls.getField(fieldName);//这个对应的是属性
fieldValue=field.get(obj);//这个就是属性的值

4. java反射取对象属性值 不是通过get方法取值

反射不是通过get取值的,是通过该对象的信息,比如说名称、内存地址等来访问类,方法,属性等,可以获取任意对象的信息,但不能获得私有属性(private String s=“sd”;)的值,切记

推荐《JAVA核心技术》这本书会对你有帮助的

5. 如何利用java的反射机制动态的取得对象的属性

Java.lang.Class
getDeclaredFields()

返回 Field 对象的一个数组,这些对象反映此 Class
对象所表示的类或接口所声明的所有字段。
Java.lang.reflect.Field

getName()

返回此 Field 对象表示的字段的名称。
getGenericType()

返回一个 Type 对象,它表示此 Field 对象所表示字段的声明类型。

以上是jdk里面的一些用法,就是用你想要获取对象的属性得到它的class 然后调用 getDeclaredFields()就可以得到字段数组了。
然后再用下面的方法就可以得到属性名,类型这一些。
很简单,要想实现现复杂的功能就再找一下api 找出相应的方法。

6. java怎么通过反射获得所有的属性的值

Class<?> clazz = ref.getClass();
Method method=clazz.getMethod("getLength");
System.out.println(method.invoke(ref));

7. java中如何通过反射获取类的属性

简单的方法如下:
Class<?> cls=Class.forName(className);////////////////////////通过类的名称反射类
Object obj=cls.newInstance();//////////////////////对象实例化
Field field=cls.getField(fieldName);/////这个对应的是属性
fieldValue=field.get(obj);////这个就是属性的值

8. 怎样用java反射机制获得父类private 属性的值

Class c = null;
try {
c = Class.forName("com.ibm.lan.test.Sub");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

Class superClass = c.getSuperclass();
Field[] fields = superClass.getDeclaredFields();

这是得到父类的属性
for(int i=0;i<fields .length;i++)
{
fields [i].setAccessible(true);
System.out.println(fields [i].getType());
fields [i].set();
}

阅读全文

与java反射获得属性的值相关的资料

热点内容
服务器换主机需要什么系统 浏览:749
linux监控jvm内存 浏览:79
空调压缩机自制工具 浏览:518
命令行控制路由器 浏览:957
逆拓扑排序算法描述 浏览:588
如何远程链接到linux服务器地址 浏览:630
抹茶app支付方式怎么选 浏览:556
猎人宝宝攻击命令 浏览:159
操作系统是编译原理吗 浏览:646
云服务器迁移后 浏览:260
excel格式转换pdf 浏览:987
登录器一般存在哪个文件夹 浏览:535
中兴光猫机器码算法 浏览:330
android响应时间测试 浏览:940
java编程思想第四版答案 浏览:888
如何对nbt编程 浏览:885
mscpdf 浏览:948
文件夹d盘突然0字节可用 浏览:272
吃火腿肠的解压场面 浏览:339
卫星锅加密教程 浏览:792