导航:首页 > 编程语言 > 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反射获得属性的值相关的资料

热点内容
广东分布式服务器云主机 浏览:578
服务器忙打不开怎么办 浏览:10
tif压缩软件 浏览:408
程序员那么可爱陆漓上班第1天 浏览:950
macbookair自带什么app 浏览:696
如何关了加密的软件 浏览:577
程序员p2p待遇 浏览:920
ipd编译要求 浏览:931
压缩解压王怎么用 浏览:29
服务器共享文件如何备份 浏览:752
买安卓手机怎么在官网买 浏览:120
诗词入门PDF 浏览:361
毒app是什么单位 浏览:64
如何自己编译android系统 浏览:792
phpmysqlpdomysqli 浏览:808
php修改sql语句 浏览:720
android有道api 浏览:387
挠耳营水表用的什么app 浏览:54
战锤40kpdf 浏览:381
java判断字符串是汉字 浏览:468