これは当時の人の一人でした。Java Reflectionは質問と同じです
私は実行時にプロパティを比較したい2つのストックオブジェクトを持っています。 1つのインスタンスがキャッシュされたインスタンスであり、もう1つはシステムに配信された新しいストックインスタンスです。これはキャッシュされたインスタンスと等しいかもしれません。 mはクラスストックからのメソッドである場合についてを参照してくださいと株価は
try {
// I want to compare these two objects, return type of m may vary
Object result = m.invoke(stock);
Object cacheResult = m.invoke(stockCache.get(ticker));
// The return type of m may vary but is known at runtime
Class returnType = m.getReturnType();
// I assume I need to cast before .equals() will work correctly
if(result.equals(cacheResult)) {
// Will this work or do I need to cast
}
}catch (Exception ex) {
}
EDIT株のインスタンスである:私はリフレクションを使用しています理由について尋ねてきた人のために、私は逆のAjaxフレームワークのDWRを使用していると私は思いますhtml idプロパティをオブジェクトプロパティにマッピングしようとしました。これにより、関連するHTML ID値でプロパティに注釈を付けることができます。このメソッドは、オブジェクトをUIにプッシュすると、オブジェクト全体ではなく変更されたプロパティだけをプッシュすることができます。
あなたは私たちメートルの期待リターンの種類についていくつかのより多くの情報を提供してもらえますか?文字列や整数のようなスカラー値か、より複雑なオブジェクトですか?それらは共通のスーパークラスを持つオブジェクトですか? –
キャストする必要はありません。そしてtry/catch(Exception)も必要ありません。 equalsメソッドが想定どおりに動作することを確認するだけです。 – OscarRyz