[java] 다른 클래스의 메소드에 대한 Javadoc 링크

현재이 Javadoc 구문으로 다른 클래스의 메소드를 참조하고 있습니다.

@see {@link com.my.package.Class#method()}

그리고 내가 문서에서 이해하는 것은 이것이 올바른 방법입니다. 그러나 지금 재미있는 부분, 또는 좌절에. 이 javadoc을 생성하면 우선 다음과 같은 오류가 발생합니다.

warning - Tag @see:illegal character: "123" in "{@link com.my.package.Class#method()}"
warning - Tag @see:illegal character: "64" in "{@link com.my.package.Class#method()}"
warning - Tag @see: reference not found: {@link com.my.package.Class#method()}

생성 된 HTML 코드는 다음과 같습니다.

"," <code>com.my.package.Class#method()}</code> ","

그리고 물론 링크가 없습니다. 누구나 무슨 일이 일어나고 있는지,이 문제를 해결하는 방법에 대한 힌트를 줄 수 있습니까?

ASCII 테이블 문자 123 및 64에 따르면 wold는 {및 @를 나타내므로 설명서에 따라이 구문이 올 바르면 왜 이러한 문자가 유효하지 않습니까?



답변

Javadoc 태그의 경우에는 @see사용할 필요가 없습니다 @link. Javadoc이 링크를 작성합니다. 시험

@see com.my.package.Class#method()

에 대한 자세한 정보는 다음과 같습니다 @see.


답변

을 제외하고 @see다른 클래스와 해당 클래스의 메소드를 참조하는보다 일반적인 방법은 다음과 같습니다 {@link somepackage.SomeClass#someMethod(paramTypes)}. 이것은 javadoc 설명 중간에 사용할 수 있다는 이점이 있습니다.

로부터 Javadoc 문서합니다 (@link 태그의 설명) :

이 태그는 @see와 매우 유사합니다. 둘 다 동일한 참조가 필요하고 package.class # member 및 label에 대해 정확히 동일한 구문을 허용합니다. 주요 차이점은 {@link}가 “참조”섹션에 링크를 배치하지 않고 인라인 링크를 생성한다는 것입니다. 또한 {@link} 태그는 중괄호로 시작하고 끝나서 나머지 인라인 텍스트와 구분됩니다.


답변

따라서 원래 문제에 대한 해결책은 동일한 줄에 “@see”및 “{@link …}”참조가 모두 필요하지 않다는 것입니다. “@link”태그는 자급 자족하며 언급 한 바와 같이 javadoc 블록의 어느 곳에 나 배치 할 수 있습니다. 따라서 두 가지 접근 방식을 혼합 할 수 있습니다.

/**
 * some javadoc stuff
 * {@link com.my.package.Class#method()}
 * more stuff
 * @see com.my.package.AnotherClass
 */


답변