‘壹’ java反射 在只知道类名的情况下,怎样给其中的私有属性赋值
利用反射能
//假设类名为A
//实例化类
Ap=newA();
//获取class
Classc=p.getClass();
//获取该类所有的字段
Field[]fields=c.getDeclaredFields();
//遍历赋值
for(inti=0;i<fields.length;i++){
StringfiledName=fields[i].getName();
//AccessibleTest类中的成员变量为private,故必须进行此操作
fields[i].setAccessible(true);
//判断类型
Class<?>type=fields[i].getType();
//获取字段类型
StringtypeName=type.getName();
System.out.println(type.getName());
//对字段进行赋值第一个参数为对象引用第二个参数为要附的值
//如果为字符串类型
if("java.lang.String".equals(typeName)){
fields[i].set(p,"1");
}
//如果为日期类型
elseif("java.util.Date".equals(typeName)){
fields[i].set(p,newDate());
}
else{
fields[i].set(p,1);
}
}
//楼主我只是简单的写了下。可能还需要判断字段名称以及其他类型什么的。
最后希望楼主多看看java 文档。
‘贰’ javaWeb中使用反射机制为数据库中表生成的实体类的的对象赋值
在CustomerInfo 这个类中所有的属性(id...........detailInfo)要实现setXXX getXXX方法,并且CustomerDetailInfo 这个类中的属性也要实现setyyyy geyyyy方法,然后再用的时候,可以实例化CustomerInfo cus这个类,然后cus.setXXX.setyyyy就能进行赋值,不知道你是否听懂,不懂再问我
‘叁’ java 中 父类写初始化代码 反射获取类中的所有属性 并按照某种逻辑赋值(我是为了初始化Spring中的Bean)
这种想法是不可能实现的,父类中是获取不到子类的属性的,你需要换一个思路解决问题。
‘肆’ Java反射赋值会调用set方法吗
不会。set/get方法只是javaBean的规范,用来统一管理Bean属性的赋值操作。
‘伍’ java两个实体对象有映射关系,则怎么用反射把一个对象的数据拿到,赋给另一个对象
这个没什么复杂的,你的核心意思是需要对二个对象的实例进行动作,做法如下:
1、对第一个类进行反射获取属性的值
2、对第二个类进行反射设置属性的值(将1中的值设入,采用配置文件进行关系映射)
建议你看下java反射机制,不用太理解他的含义,了解怎么用就可以,网络一下“java反射代码”。
下面2个网站可以看看:
http://847353020-qq-com.iteye.com/blog/1003440
http://yuncode.net/code/c_51fca6e300b5b88
‘陆’ java 反射 能直接对私有属性赋值么不通过set方法
设置
A a = new A();
Field field = a.getClass().getDeclaredField("x");
field.setAccessible(true);
field.set(a, 1);
读取
Field f = a.getClass().getDeclaredField("x");
f.setAccessible(true);
System.out.println(f.get(a));