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

uContainer是UserContainer类的实例。

getSingleResultListing也是UserContainer类中的一个布尔变量,具有getters和setters方法。

代码如下。

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对象时出现错误。

谢谢..

最佳答案

您正在将返回的对象强制转换为String,但是没有从该方法获取String。您不能通过强制转换运算符将对象转换为String。如果要使用字符串表示形式,请编写

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

关于java - 如何使用method.invoke(-,-)从类中调用字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10310998/

10-08 23:34