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


238

현재이 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는 {및 @를 나타내므로 설명서에 따라이 구문이 올 바르면 왜 이러한 문자가 유효하지 않습니까?


1
확인하기 위해 ... Javadoc Generator 문서를 읽었습니까? docs.oracle.com/javase/7/docs/technotes/tools/windows/…
Diogo Moreira

com.my.package.Class이 JavaDoc이 작성된 클래스에서 가져 왔습니까? 찾을 수없는 참조가 이상한 것 같다. 반면에, 나는 그들이 함께 사용한 적이 있지만, 기회있을 @see@link충돌 서로, 그것을 복용 @see이 나를 놀라게하지 않을 자신 seciton를 생성가.
Fritz

1
@DiogoMoreira-아니요 엔진에 대해 읽지 않았지만 확인하겠습니다.
Robert

@Gamb-물론 내 실제 Javadoc 입력이 아닙니다 .-) 예 모든 가져 오기가 완료되었습니다.
Robert

1
원시 하이퍼 링크를 @seejavadoc 의 태그 값으로 설정하면 유사한 오류가 발생합니다 . 이 경우에 고치려면 하이퍼 링크를 html 앵커 요소로 감싸십시오./** @see <a href="http://example.com">Example</a> */
cyber-monk

답변:


280

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

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

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


감사합니다. 방금이 솔루션을 테스트했는데 제대로 작동합니다! 그러나 나는 당신이이 링크를 사용해야 작동하는 많은 곳을 읽었습니다. 그래서 조금 이상합니다 ...
Robert

7
당신이 사용할 수있는 @link자바 독 이미에 대한 설명에서 예를 들어 링크로 설정하지 않는 다른 장소에 @param대한 설명에서, @return등 설명의 주요 부분에,
rgettman

1
방금 시도했을 때 메소드를 일반 텍스트로 표시하므로 로컬 메소드의 @see처럼 클릭 할 수 없습니다.
JesseBoyd

146

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

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

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


68

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

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

4
다른 두 답변 / ** * /하지 단일 행 다중 행 주석에있을 그 '@link'또는 '@see'의 필요성을 보여주지 않기 때문 허용 대답을해야한다
Stoycho 안드리

1
@Sniper {@link }는 단일 행 Javadoc 주석에서 잘 작동합니다. 주석으로 시작하는 주석과 함께 작동하지 않는다는 사실을 언급하고 //있습니까? /** */Javadoc이며 모든 Javadoc 함수에 필요합니다.
Jase

네 @Jase 나는 이것을 정확하게 만났다 코멘트는 / ** * /
이어야

6
@ 스나이퍼 나는 이것이 Javadoc 질문이기 때문에 이것이 받아 들여지는 대답이 필요하다고 생각하지 않습니다. 일반적으로 Javadoc은 Javadoc 주석에서만 작동한다는 것을 이해해야합니다.
Jase

@Jase는 귀하의 의견에 동의하지만 Stackoverflow와 같은 정보 출처는 Oracle 문서 또는 다른 문서의 인용문이 아닌 예제의 설명이 필요하다고 생각합니다. 이 답변은 예를 가진 유일한 답변입니다. 위의 두 답변은 따옴표입니다.
Stoycho Andreev 2016
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.