有关动态获取Bean里属性的值
public class Bean{
private String aa;
private String bb;
public String getAa(){
return aa;
}
public void setAa(String a){
aa = a;
}
public String getBb(){
return bb;
}
public void setBb(String b){
bb = b;
}
}
public class test{
public void gettest(Bean bean,String ss){
}
}
请问我如何在gettest里根据ss传入的是 "aa "或 "bb "来获取bean对应的属性.
不能在gettest里定死了一个一个的判断。
------解决方案--------------------你这个问题,我认为去看看java的动态代理
reflect功能。
------解决方案--------------------使用这个试一下:
public static void gettest(Bean bean,String ss) throws Exception{
String methodName = "get " + ss.substring(0,1).toUpperCase() + ss.substring(1);
Method[] methods = bean.getClass().getDeclaredMethods();
for(int i=0; i <methods.length; i++) {
if(methodName.endsWith(methods[i].getName())){
methods[i].invoke(bean, new Object[]{});
break;
}
}
}