2012-11-11 1 views
57

@see (다양한 링크)과 {@inheritDoc} (JavaDoc 주석의 수퍼 클래스 내보내기) 사이의 기본적인 차이점을 이해하고 있지만 실제로 구현 된 방법에 대한 설명이 필요합니다. 내가 생산하는 데 필요한입니다 경우@see와 @inheritDoc의 차이점에 대한 자세한 내용

이클립스 IDE에서

내가 (등 인터페이스, 또는 toString() 오버라이드 등) 상속 방법 "요소의 의견을 생성"선택은 코멘트

/* (non-Javadoc) 
* @see SomeClass#someMethod() 
*/ 

다음 생성 JavaDoc을 내가 저것을 떠나야한다, {@inheritDoc}@see를 교체하거나 으로 돌리 선의의 등의 JavaDoc :

/** 
* {@inheritDoc} 
*/ 

그리고 난 여전히 클래스 # 분을 유지해야한다, 그렇게 할 때 ethod 플래그?

답변

92

우선, 이클립스 템플릿은 잡음이 많은 쓰레기이기 때문에 제거해야합니다. 의미있는 문서를 넣거나 아무것도 넣지 마십시오. 그러나 IDE 템플릿을 사용하여 분명한 사실을 다시 말해서 코드를 혼란스럽게 만들뿐입니다.

두 번째로 javadoc을 생성해야하는 경우 이 있으면 /**으로 시작해야합니다. 그렇지 않으면 javadoc이 아닙니다.

마지막으로, 당신은 다음 오버라이드 (override)하는 경우는 @inheritDoc (@see가 언급 한 바와 같이 그냥 원래의 문서를 복제하려는 경우 다음 당신은 아무것도하지 않아도, 원래 문서에 추가하기 원하는 가정)를 사용한다 . @see은 실제로 기타 관련 방법을 참조하는 데 사용해야합니다.

+42

원본 수퍼 클래스 문서에 * 추가 ​​*하려는 경우에만'@ inheritDoc'을 사용해야합니다. Javadoc가 이미 복제되고 싶다면, 서브 클래스가 추가 문서를 제공하지 않았기 때문에 수퍼 클래스 문서가 서브 클래스의 재정의 된 메소드에 적용된다는 점에 유의하십시오. – seh

+2

'@ inheritDoc'의 유무에 관계없이 문서를 생성했는데 차이점이 보이지 않습니다. '@ inheritDoc'이 없어도 파생 클래스의 Javadoc이 기본 클래스에 추가 된 것을 볼 수 있습니다. – randominstanceOfLivingThing