getMethod避免使用父类

时间:2013-05-20 20:42:14

标签: java reflection

在使用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){
...
}

我不希望它从superClass引入equals方法,它目前正在做。我想知道的是,我调用getMethod的类(在本例中为subClass)是否包含方法equals()。

任何方式这样做?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

尝试getDeclaredMethod(String,args)。它只返回你的类显式声明的方法,因此不涉及超级。

答案 1 :(得分:0)

请改用subClass.getDeclaredMethod()。这样,您将获得在您的班级或MethodNotFoundException

中明确声明的方法