在这里,我试图从另一个项目中获取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/