2012-04-25 7 views
0

ここで私は別のプロジェクトのuContainerオブジェクトを取得しようとしています。戻り値がproperties fileから設定されたすべてのセッターとゲッターを持つuContainer。 perticularユーザーのユーザープロパティと同様です。私はuContainerインスタンスからperticularメソッドの値を取得するために使用しています。しかし、4行目で私のアプリケーションがクラッシュしました。method.invoke( - 、 - )を使用してクラスから文字列を呼び出す方法

uContainerはUserContainerクラスのインスタンスです。

getSingleResultListingまた、UserContainerのブール変数で、gettersおよびsettersメソッドを持つクラスです。

コードは次のとおりです。ここでは4行目の

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に返されたオブジェクトをキャストしているが、あなたが取得されていません。..

おかげ..

+0

と書いてください。そのエラーは? –

答えて

1

をエラーを取得していますその方法からのString。キャスト演算子を使用してオブジェクトをStringに変換することはできません。文字列表現が必要な場合は、

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

非常に非常にありがとう..あなたのコードは素晴らしい仕事です。私はtoString()メソッドを使う考えはしませんでした。それは私が多くを助けた。 – Mdhar9e