Methodインターフェイス定義のMethodインスタンスと実装クラスの同じメソッドのインスタンスがある状況に遭遇しました。
例えば:
public interface Foo {
void bar();
}
public class FooImpl implements Foo {
public void bar() {
System.out.println("foobar");
}
}
リフレクションを使用して、インターフェイスからMethodインスタンスを取得し、から派生した実装を取得しました。基本的に、私はこれらを同等と見なす必要がありますが、明らかにこの方法はそれらが同等ではないことを示しています。barFooFooImplMethodsequals
具体的には、Methodリフレクションを通じて取得された特定のものがスーパークラス/インターフェイスをオーバーライドするかどうかを判断する方法が必要Methodです。
私は現在、特定のクラスから「最小派生」メソッドを見つけることによって状況を完全に回避する回避策を使用していますが、より洗練された解決策があるかどうか疑問に思っています。