Cách @ liên kết đến Giá trị Enum bằng Javadoc


121

Sử dụng Javadoc 1.5, tôi không thể tạo @ liên kết đến giá trị Enumeration.

Những gì tôi muốn làm là tạo một Enum như sau:

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
}

Và sau đó tham khảo Javadoc cho Earth bằng liên kết như sau:

{@link Planet.EARTH}

Tôi cũng đã thử {@link Planet#EARTH}phong cách, nhưng vô ích.

Bất cứ ai biết nếu điều này có thể làm được ở tất cả?

Câu trả lời:


197

Các #phong cách làm việc cho tôi:

{@link Planet#EARTH}

Điều quan trọng là Planetgói phải được nhập khẩu, hoặc Planetphải đủ tiêu chuẩn - tức là:

{@link com.yourpackage.Planet#EARTH}

Như sfussenegger đã lưu ý, Eclipse xử lý việc nhập cho bạn.
aperkins

Cảm ơn cả hai câu trả lời hữu ích! Tôi đã làm cho nó hoạt động bằng cách sử dụng tài liệu tham khảo đủ điều kiện. Đôi khi đầu ra trình biên dịch là không thực sự hữu ích trong việc xác định vấn đề là gì ...
Christer Fahlgren

3
Điều gì sẽ xảy ra nếu enum được định nghĩa trong lớp A và một người đang cố gắng tham chiếu một trong các giá trị của nó từ javadoc lớp B? Tôi không tìm thấy A.Planet # EARTH và A # Planet # EARTH hoạt động cho bản cập nhật OpenJDK 1.6 javadoc 24, mặc dù eclipse biết cách tìm khai báo với kiểu A.Planet # EARTH.
Stevo Slavić

Thật không may, điều đó không hoạt động nếu bạn có nhập tĩnh của enum. Ít nhất trong ý tưởng intellij không có cách nào để sử dụng một enum được nhập tĩnh trong javadoc, trừ khi bạn sử dụng tên enum đủ điều kiện với các gói, v.v.
dhblah 29/05

6

Tôi đang sử dụng Eclipse để kiểm tra điều này, nhưng

{@link Planet#EARTH}

phong cách có vẻ hoạt động. Tuy nhiên, tôi thường thích

@see Planet#EARTH

dù sao. Không chắc Eclipse sử dụng gì để tạo Javadoc, nhưng tôi đang sử dụng JDK6. Tuy nhiên, có thể @see thực hiện thủ thuật cho bạn.


4
Tôi thích @seenhưng đôi khi bạn cần những trường hợp đặc biệt. Ví dụ, đơn đặt hàng của tôi có một isWithdrawn()phương pháp, và tôi nói cụ thể@return true if the status of this order is equal to OrderStatus#WITHDRAWN, false otherwise
corsiKa

2

Miễn là nó được nhập, bạn có thể liên kết nó (nhưng khi bạn làm điều này, IMO nó sẽ làm cho việc nhập trở nên lộn xộn - cái nào được sử dụng trong mã và cái gì trong javadoc? Tôi chỉ muốn sử dụng tên đủ điều kiện).

Nhưng có, Eclipse có thể xử lý tất cả và tiêu chuẩn

{@link Planet#EARTH}

hoạt động tốt.

Nếu bạn đang sử dụng Eclipse, Ctrl + Shift + O (trên PC) hoặc Cmd + Shift + O (trên Mac) sẽ tự động điều chỉnh các lần nhập của bạn (điều này có nghĩa là nếu bạn có các lần nhập bổ sung không được sử dụng, chúng sẽ bị xóa, cũng như thêm bất kỳ hàng nhập khẩu nào bạn cần).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.