java反射

vvhlj 2010-09-06 09:15:03
Class c = Account.class;

Account account = new Account();

//获取Account实体类中,所有声明的属性
Field[] fields = c.getDeclaredFields();

for(int i = 0 ;i<fields.length;i++)
{

//在迭代时,我怎样才能知道fileds[i]的类型呢
fields[i].set(account,"放入一个Object类型的值");
}
...全文
70 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
若鱼1919 2010-09-06
  • 打赏
  • 举报
回复


import java.lang.reflect.Field;
class Account{
private int id;
private String name;
public String toString(){
return name+","+id;
}
}
public class ReflectTest {
public static void main(String[] args)throws Exception {
Account account = new Account();
Class cls = Account.class;
Field[] fields = cls.getDeclaredFields();
for(Field field : fields){
field.setAccessible(true);
Class fieldType = field.getType();
if(fieldType == int.class){
field.set(account, 1);
}else if(fieldType == String.class){
field.set(account, "aaaaaa");
}
}
System.out.println(account);
}
}
humanity 2010-09-06
  • 打赏
  • 举报
回复
private / protected / default 类型的 field 可能不允许访问,

需要 fields[i].setAccessible(true) 然后再 fields[i].set(xxxx, "FEFWEFWEF");
vvhlj 2010-09-06
  • 打赏
  • 举报
回复
能不能详细点,完成对这个属性的赋值
fields[i].set(account,obj);
oklinsong 2010-09-06
  • 打赏
  • 举报
回复
getType()
zhaohuihua 2010-09-06
  • 打赏
  • 举报
回复
fields[i].getType();

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧