java反射如何获取并修改list子对象

gzd03 2015-02-01 10:33:29
Techer类:

class Techer {
private String name;
private String glass;
private List<Student> stus;
}


Student类:

class Student {
private String stuNmae;
private String stuAge;
}


数据结构:

Student stu1 = new Student();
stu1.setStuNmae("zhangsan");

Student stu2 = new Student();
stu2.setStuNmae("lisi");

Techer tec = new Techer();
tec.setGlass("B");
tec.setName("zhang lao shi");

List<Student> stus = new ArrayList<Student>();
stus.add(stu1);
stus.add(stu2);
tec.setStus(stus);


请问,如何通过java的反射机制,修改tec对象中的suts,分别为stu1和stu2的sutAge赋值

接口要求如下:
public Techer setStuInfo(Techer tec, String[] ages);
...全文
463 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
邹邹wl 2015-02-01
  • 打赏
  • 举报
回复
		 Method method = tec.getClass().getMethod("setStus", List.class);
		 method.invoke(tec, stus);
gzd03 2015-02-01
  • 打赏
  • 举报
回复
先判断类型是否是list,然后用下面的代码就可以获取到list集合
Method m = (Method) obj.getClass().getMethod("get" + getMethodName(field.getName()));  
List list = (List) m.invoke(obj);
private static String getMethodName(String fildeName) throws Exception{  
		byte[] items = fildeName.getBytes();  
		items[0] = (byte) ((char) items[0] - 'a' + 'A');  
		return new String(items);  
	}

62,614

社区成员

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

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