2012-01-18 4 views
0

javadoc에서 상속 된 메서드에 대해 별도의 섹션이있는 이유는 무엇입니까? 예를 들어 LinkedList의 http://docs.oracle.com/javase/1.5.0/docs/api/java/util/LinkedList.html에는 메서드 요약 섹션과 상속 된 메서드에 대한 섹션 (예 : "interface java.util.List에서 상속 된 메서드")이 있습니다. 메소드 요약에있는 메소드 중 일부는 다른 클래스에서 상속 받았으므로이 섹션이 왜 존재합니까? javadoc는 메소드 요약에 넣을 메소드와 메소드 요약에있는 메소드가 상속 된 경우에도 상속 된 섹션의 어떤 메소드를 결정합니까?Javadoc 메서드 및 상속 된 메서드

답변

1

Reflection-API을 사용하여 메서드가 상속되는지 여부를 결정합니다.

  • getMethod() 반환 상속 방법
  • getDeclaredMathod() 반환을 더 참조에 대한 모든 방법

Discovering Class Members

의 API 사용법을 설명하는 예제도 참조

public class Reflect extends ArrayList { 
    public static void main(String[] args) { 
     Reflect r = new Reflect(); 
     r.dump(); 
    } 

    private void dump() { 
     Method[] methods = this.getClass().getMethods(); 
     Set<String> ms = new HashSet<String>(); 
     for (Method m : methods) { 
      ms.add(m.getName()); 
     } 
     Method[] declMethods = this.getClass().getDeclaredMethods(); 
     Set<String> ds = new HashSet<String>(); 
     for (Method m : declMethods) { 
      ds.add(m.getName()); 
     } 
     for (String name : ms) { 
      System.out.println(name + " is inherited =" +! ds.contains(name)); 
     } 

    } 
} 
+1

I 돈 이것이 그 대답이라고 생각하지 않습니다. 사실, "메소드 요약"섹션의 메소드 중 일부는 실제로 ArrayList API의 수퍼 클래스에서 상속됩니다. 그렇다면 왜 "상속받은"섹션에없는 것입니까? 하나는 "메소드 요약"메소드가 수퍼 클래스 버전을 대체한다고 주장 할 수 있지만 "상속받은 부분"섹션의 메소드 중 일부는 수퍼 클래스 버전을 대체합니다. – john