Javadoc @see hoặc {@link}?


184

Ai đó có thể cho tôi biết sự khác biệt giữa javadoc @see{@link}?

Hay đúng hơn, khi nào nên sử dụng cái nào trong số chúng?

Câu trả lời:


213

Các hướng dẫn chính thức về điều này là khá rõ ràng.

Sự khác biệt về chức năng là:

  • {@link} là một liên kết nội tuyến và có thể được đặt bất cứ nơi nào bạn muốn
  • @see tạo phần riêng của nó

Theo tôi, {@link}được sử dụng tốt nhất khi bạn thực sự sử dụng một lớp, trường, hàm tạo hoặc tên phương thức trong mô tả của bạn. Người dùng sẽ có thể nhấp qua javadoc về những gì bạn đã liên kết.

Tôi sử dụng @seechú thích trong 2 trường hợp:

  • Một cái gì đó rất có liên quan nhưng không được đề cập trong mô tả.
  • Tôi đề cập đến cùng một điều nhiều lần trong mô tả và nó được sử dụng như là một thay thế cho nhiều liên kết đến cùng.

Tôi dựa trên ý kiến ​​này về việc kiểm tra ngẫu nhiên tài liệu cho rất nhiều thứ trong thư viện tiêu chuẩn.


3
Javadoc cảnh báo rằng @link khá chuyên sâu và chỉ nên được sử dụng khi cần thiết.
Thomas

4
Đối với bất kỳ ai đang tìm kiếm, bạn có thể nhận thông tin chi tiết về điều này (bao gồm cảnh báo về @linknhận xét ở trên) trong hướng dẫn Javadoc của Oracle .
Ash Ryan Arnwine

48

@seetạo một dòng cô lập trong Javadocs. {@link}là để nhúng trong văn bản.

Tôi sử dụng @seekhi đó là một thực thể có liên quan nhưng tôi không đề cập đến nó trong văn bản lưu trữ. Tôi sử dụng các liên kết trong văn bản khi có sự kết hợp chặt chẽ hoặc (tôi cảm thấy) có khả năng người đọc sẽ được hưởng lợi từ gợi ý điều hướng, ví dụ: bạn sẽ cần tham khảo trực tiếp.


3

Có một tài liệu tham khảo khác (phần không dùng nữa) cùng các tài liệu chính thức để ưu tiên {@link}hơn @see(kể từ Java 1.2):

Đối với Javadoc 1.2 trở lên, định dạng chuẩn là sử dụng thẻ @deprecated và thẻ {@link} nội tuyến. Điều này tạo ra liên kết nội tuyến, nơi bạn muốn nó. Ví dụ:

Đối với Javadoc 1.1, định dạng chuẩn là tạo một cặp thẻ @deprecated và @see. Ví dụ:

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.