站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题Java.lang.Reflect反射机制可不可以实现这样的功能?就是动态调用setOption1(optionValue1),setOption2(optionValue2),setOption3(option

Java.lang.Reflect反射机制可不可以实现这样的功能?就是动态调用setOption1(optionValue1),setOption2(optionValue2),setOption3(option

摘要: Java.lang.Reflect反射机制可不可以实现这样的功能?就是动态调用setOption1(optionValue1),setOption2(optionValue2),setOption3(option


因为我在Struts中的一个ActionForm里定义了setOption1(optionValue1),setOption2(optionValue2),setOption3(optionValue3)....一起10个方法,然后我想通过反射机制能不能用一个循环来依次执行方法?

getOptionX()是可以实现,但是setOptionX(String p)不知道该怎么来处理,网上找了半天也没找到。多谢了.


如果你是Struts

// 多个
Map map = new HashMap();
map.put("option1", option1);
map.put("option2", option2);
BeanUtils.populate(yourForm, map);

// 单个
BeanUtils.setProperty(yourForm, "option1", option1);

否则,
Class clazz = yourForm.getClass();
Method method = clazz.getMethod("setOption" + i, new Class[] {String.class});
method.invoke(yourForm, new Object[] {option1});


根据参数的Class Types在Class上找到该方法 -- Method的一个实例.
Call Method.invoke(Object, Object[])
Object是对象实例;
Object[]是实际参数的数列。



shine333(enihs).

哥们,多谢你。

你说的BeanUtils这个工具类是哪个包下的?Apache?


struts的环境里已经有beanutils,从Web Form(HTML)转换成ActionForm(Java)就是用BeanUtils

具体的src请访问http://jakarta.apache.org/commons/beanutils/


↑返回目录
前一篇: jsp能否将要显示的信息缓存起来一起输出?
后一篇: JFreeChart图像显示问题