0

以下の行から、私はのオブジェクトを取得しますPdsLongAttrImpl

Object obj = typeInfo.getParseMethod().invoke(null, rawValue);

そして、そのオブジェクトはフィールドとしてpropertyKeyとを持っValueています。

上記の特定のオブジェクトから値を取得するにはどうすればよいですか?

4

3 に答える 3

2

objリターンのタイプにキャストします。

たとえば、期待収益タイプがPdsLongAttrImpl

次に、次のようになります。

PdsLongAttrImpl pdsObj = (PdsLongAttrImpl)obj;

//次に、に対して操作を実行しpdsObjます。

注:objがキャスト先のタイプでない場合は、最終的に。になりClassCastExceptionます。

于 2012-11-07T22:24:44.123 に答える
1

値を適切なタイプにキャストするだけです。

 YourTypeHere obj = (YourTypeHere)typeInfo.getParseMethod().invoke(null, rawValue);

タイプがわからない場合は、次を使用できます。

 System.out.println(typeInfo.getParseMethod().invoke(null, rawValue).getClass().getName));

これにより、クラスの名前がコンソールに出力されます

于 2012-11-07T22:26:10.487 に答える
0

オブジェクトのタイプがわかっている場合(そしてPdsAttrImplがコードに表示されるクラスである場合)、次のようにキャストできます。

PdsLongAttrImpl casted = (PdsLongAttrImpl)obj;

//assuming you have getXXX methods for the two fields

casted.getPropertyKey();
casted.getValue();
于 2012-11-07T22:25:52.253 に答える