@see와 @inheritDoc의 차이점에 대한 세부 정보


89

JavaDoc 참조를 살펴 봤고 @see(다양한 링크)와 {@inheritDoc}(수퍼 클래스 JavaDoc 주석 내보내기 )의 기본적인 차이점을 이해하지만 실제로 구현 된 방법에 대한 설명이 필요합니다.

Eclipse IDE에서 상속 된 메서드 (인터페이스 또는 toString () 재정의 등)에 대해 "요소 주석 생성"을 선택하면 다음 주석이 생성됩니다.

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

내가 생산 JavaDoc을 요구하고 경우에 나는 대체, 그 그것을 남겨 두어야 @see와 함께 {@inheritDoc}, 또는으로 돌리 선의 등의 JavaDoc :

/**
 * {@inheritDoc}
 */

그렇게 할 때 여전히 class # method 플래그를 유지해야합니까?

답변:


144

우선, 시끄러운 쓰레기 일 뿐이므로 원래 이클립스 템플릿을 제거해야합니다. 의미있는 문서를 넣거나 아무것도 넣지 마십시오. 그러나 IDE 템플릿을 사용하여 명백한 내용을 쓸데없이 다시 작성하면 코드가 복잡해집니다.

둘째, javadoc을 생성 해야하는 경우 주석을 /**. 그렇지 않으면 javadoc이 아닙니다.

마지막으로 재정의하는 경우 @inheritDoc( @seh가 주석에서 언급했듯이 원본 문서 에 추가 하고 싶다고 가정 하고 원본 문서를 복제하려는 경우에는 아무것도 필요하지 않습니다)를 사용해야합니다. 다른 관련 메서드 @see를 참조하는 데만 사용해야 합니다.


75
원래 수퍼 클래스 문서 @inheritDoc추가 하려는 경우 에만 사용해야 합니다 . 단순히 복제하기를 원한다면, Javadoc은 이미 그렇게 할 것입니다. 서브 클래스가 추가 문서를 제공하지 않았기 때문에 수퍼 클래스 문서가 서브 클래스의 재정의 된 메소드에 적용된다는 점에 주목합니다.
seh

4
나는 문서를 생성하거나 포함하지 않고 @inheritDoc차이를 보지 못했습니다. 없이도 @inheritDoc파생 클래스의 Javadoc이 기본 클래스에 추가되었음을 알 수 있습니다.
randominstanceOfLivingThing

checkstyle이 "메서드가 확장을 위해 설계되지 않은 것 같다"고 불평하기 때문에 여기에 왔습니다. 좋은 아이디어는 @inheritDoc몇 가지 구현 특정 문서 를 사용 하고 추가하는 것입니다. 예를 들어, 부모 메서드를 구현 / 덮어 쓰는 방법, 특히 그렇게하는 이유는 무엇입니까?
Ben
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.