2013-05-20 3 views
1

getMethod()를 사용하는 중에 문제가 발생했습니다. 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

getDeclaredMethod (String, args) try를 지정합니다. 클래스에 의해 명시 적으로 선언 된 메서드 만 반환하므로 슈퍼가 포함되지 않습니다.

+0

Stackoverflow ... 내가 문서에서 놓친 바보 같은 작은 것들을 지속적으로 보여줍니다. 하하. 고마워,이 완벽하게 일했다. – Scalahansolo

0

대신 subClass.getDeclaredMethod()을 사용하십시오. 이 방법은 당신이 분명히 클래스에서 선언 한 메서드를 얻을 것이다 또는 MethodNotFoundException

관련 문제