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

热点内容
解压小手工A4纸 浏览:975
钢筋加密区是几倍 浏览:664
编译程序代码软件 浏览:800
怎么恢复加密的东西 浏览:981
程序员卖茶 浏览:697
后端程序员英文 浏览:360
滴滴程序员平均月薪 浏览:591
如何使用ftp命令 浏览:787
小书亭下载的文件在哪手机文件夹 浏览:176
交叉编译器编译单个c文件 浏览:513
代理服务器地址列表吧 浏览:930
java列出所有文件 浏览:868
压缩包看图软件 浏览:191
sqlite在android中的应用 浏览:661
一本通pdf 浏览:916
2021免费的编程软件 浏览:126
项目编译后浏览器不对应刷新 浏览:567
三星升级android60 浏览:297
粘土的压缩模量 浏览:120
美国程序员生活 浏览:223