Javadoc을 사용하여 Enum 값에 @link하는 방법


121

Javadoc 1.5를 사용하여 Enumeration 값에 대한 @link를 만들 수 없습니다.

내가하고 싶은 것은 다음과 같은 Enum을 만드는 것입니다.

public enum Planet { 

/**
* MERCURY is a fun place.
*/
MERCURY, 

/**
* VENUS is more fun.
*/
VENUS, 

/**
* But nothing beats the Earth.
*/
EARTH,

/**
* Others we know nothing about.
*/ 
OTHERS
}

그런 다음 다음과 같은 링크를 사용하여 Earth 용 Javadoc을 참조하십시오.

{@link Planet.EARTH}

나도 {@link Planet#EARTH}스타일 을 시도 했지만 아무 소용이 없습니다.

이것이 가능한지 아는 사람이 있습니까?

답변:


197

#스타일은 나를 위해 작동합니다 :

{@link Planet#EARTH}

핵심은 Planet패키지를 가져 오거나 Planet정규화해야한다는 것입니다. 즉 :

{@link com.yourpackage.Planet#EARTH}

sfussenegger가 언급했듯이 Eclipse가 가져 오기를 처리합니다.
aperkins

도움이되는 두 답변 모두 감사합니다! 정규화 된 참조를 사용하여 작동하도록했습니다. 때로는 컴파일러 출력은 문제가 무엇인지 결정하는데 정말 도움이되지 않습니다 ...
크리스 Fahlgren

3
enum이 클래스 A 내에 정의되어 있고 클래스 B javadoc에서 값 중 하나를 참조하려고하면 어떻게됩니까? A.Planet # EARTH 또는 A # Planet # EARTH는 OpenJDK 1.6 업데이트 24 javadoc에서 작동하지 않지만 Eclipse는 A.Planet # EARTH 스타일로 선언을 찾는 것을 알고 있습니다.
Stevo Slavić 2012

불행히도 enum의 정적 가져 오기가 있으면 작동하지 않습니다. 적어도 intellij 아이디어에서는 패키지 등과 함께 정규화 된 열거 형 이름을 사용하지 않는 한 javadoc에서 정적으로 가져온 열거 형을 사용할 방법이 없습니다.
dhblah

6

나는 이것을 확인하기 위해 Eclipse를 사용하고 있지만

{@link Planet#EARTH}

스타일이 작동하는 것 같습니다. 그러나 나는 일반적으로

@see Planet#EARTH

어쨌든. Eclipse가 Javadoc을 생성하는 데 사용하는 것이 확실하지 않지만 JDK6을 사용하고 있습니다. 그래도 @see가 당신을 위해 트릭을 할 수도 있습니다.


4
나는 좋아 @see하지만 때로는 특별한 경우가 필요합니다. 예를 들어, 내 주문에는 isWithdrawn()방법이 있고 구체적으로 말합니다@return true if the status of this order is equal to OrderStatus#WITHDRAWN, false otherwise
corsiKa

2

가져 오기만하면 연결할 수 있습니다 (하지만 이렇게하면 IMO는 가져 오기를 복잡하게 만듭니다. 코드에서 사용되는 것과 javadoc에서 사용되는 것은 무엇입니까? 완전한 이름을 사용하는 것을 좋아합니다).

하지만 예, Eclipse는 모든 것을 처리 할 수 ​​있습니다.

{@link Planet#EARTH}

잘 작동합니다.

Eclipse를 사용하는 경우 Ctrl + Shift + O (PC) 또는 Cmd + Shift + O (Mac)를 사용하여 가져 오기를 자동 조정합니다 (즉, 사용하지 않는 추가 가져 오기가있는 경우 제거되고 추가됩니다. 필요한 모든 수입품).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.