如何使用method.invoke( - , - )从类中调用字符串

时间:2012-04-25 07:14:24

标签: java parsing

这里我试图从另一个项目中获取uContainer个对象。 uContainer具有从properties file设置的返回值的所有setter和getter。就像特定用户的用户属性一样。我用来从uContainer实例获取特定的方法值。但在第4行我的应用程序崩溃了。

uContainer是UserContainer类的一个实例。

getSingleResultListing也是UserContainer类中的一个布尔变量,带有getter和setter方法。

代码如下。

Method getUContainer = form.getClass().getMethod("getUserContainer", new Class[0]);
Object uContainerObj = (Object)getUContainer.invoke(form, new Object[0]);
Method getFlagValueMethod = uContainerObj.getClass().getMethod("getSingleResultListing", new Class[0]);
String flagValue = (String)getFlagValueMethod.invoke(uContainerObj, new Object[0]);
log.info(">>>flagValue: "+flagValue);
boolean singleListingFlag = Boolean.getBoolean(flagValue);
log.info(">>>singleListingFlag: "+singleListingFlag);

这里在调用uContainer对象的第四行中我收到错误..

谢谢..

1 个答案:

答案 0 :(得分:1)

您正在将返回的对象强制转换为String,但您没有从该方法获得String。您无法通过强制转换运算符将对象转换为String。如果您想要字符串表示,请写

String flagValue = getFlagValueMethod.invoke(uContainerObj, new Object[0]).toString();