1

getMethod() を使用しているときに、問題が発生しました。getMethod() を呼び出しているクラスには、多くの親メソッドがあります。ただし、 getMethod に親クラスのメソッドに気付かせたくありません。私が見ている特定のクラスだけです。例えば...

class superClass {
    boolean equals(Object obj) {
        ....
    }
}

...

import superClass

class subClass {
    ...
}

今、このように getMethod を使用している場合...

try{
   Class[] args = new Class[1];
   args[0] = Object.class;
   Method equalsMethod = subClass.getMethod("equals", args);
}

catch(NoSuchMethodException ex){
...
}

これが現在行っているスーパークラスから equals メソッドを取得することは望ましくありません。私が知りたいのは、getMethod を呼び出しているクラス (この場合は subClass) に equals() メソッドが含まれているかどうかだけです。

これを行う方法はありますか?どんな助けでも大歓迎です。

4

2 に答える 2

4

getDeclaredMethod(String, args) を試してみてください。クラスによって明示的に宣言されたメソッドのみを返すため、スーパーは含まれません。

于 2013-05-20T20:46:30.410 に答える
0

subClass.getDeclaredMethod()代わりに使用してください。このようにして、クラスで明確に宣言されたメソッドを取得するか、MethodNotFoundException

于 2013-05-20T20:48:35.557 に答える