현재이 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
다른 클래스와 해당 클래스의 메소드를 참조하는보다 일반적인 방법은 다음과 같습니다 {@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
*/