2009-07-13 23 views

Trả lời

8

Xem Javadoc FAQ entry có liên quan.

Hiện nay không có tùy chọn Javadoc để che giấu, loại trừ hoặc ngăn chặn thành viên nào từ các tài liệu javadoc tạo .

Nó sẽ xuất hiện này là không thể trong vani Javadoc, nhưng một số cách giải quyết được cung cấp.

2

Thay đổi cấp độ truy cập phương pháp của phương pháp này, sau đó sử dụng việc sử dụng các thuộc tính lọc truy cập cấp các javadoc nhiệm vụ của, private, package, vv Chỉ làm điều này nếu nó có ý nghĩa trong mã của bạn, tuy nhiên, ví dụ, phương pháp mà có cấp độ truy cập không phù hợp. Ví dụ:

Ví dụ: đối với các nhà xây dựng, bạn có thể giảm mức truy cập xuống package, sau đó tạo một lớp nhà máy trong cùng một gói cung cấp quyền truy cập xây dựng bên ngoài gói. Lớp nhà máy có thể được lọc dễ dàng từ javadocs. Loại hacky, nhưng nó hoạt động.

14

Không có cách nào để thực hiện việc này cho các phương pháp công khai. Việc thực hành tiêu chuẩn (ngay cả trong một vài lớp JDK) là để chỉ ra rằng phương thức hoặc hàm tạo không có nghĩa là để sử dụng công cộng.

Có một plan to add an @exclude tag in the future:

@exclude - cho API để được loại trừ khỏi thế hệ bởi Javadoc. Lập trình viên sẽ đánh dấu một lớp, giao diện, hàm tạo, phương thức hoặc trường với @exclude. Sự hiện diện của thẻ sẽ khiến cho API bị loại trừ khỏi tài liệu được tạo. Thẻ văn bản sau có thể giải thích lý do loại trừ, nhưng sẽ bị Javadoc bỏ qua. (. Trước đây đề xuất như @hide, nhưng hạn "ẩn" là thích hợp hơn cho thời gian chạy chương trình năng động/ẩn khả năng) Đối với cuộc thảo luận hơn, hãy xem: Feature Request #4058216 trong phát triển Connection.

2

Cho ExcludeDoclet Chris Nokleberg của một thử: http://www.sixlegs.com/blog/java/exclude-javadoc-tag.html

Tôi vừa mới được thử nghiệm với nó và nó dường như làm các trick.

+0

Để ngăn các loại được tham số không được tài liệu kỹ lưỡng, hãy kiểm tra sửa đổi này của ExcludeDoclet https://sdgsystems.com/blog/hiding-javadoc-elements-exclude-tag – antgar9

8

Không loại trừ nội dung nào đó công khai khỏi tài liệu của bạn chỉ là biến thể về "bảo mật thông qua sự tối tăm" (hay đúng hơn là "tài liệu thông qua tối nghĩa")? Nếu hàm tạo là một phần trong API của mã của bạn, nó có sẵn để sử dụng. Nếu họ tìm hiểu về nó và sử dụng nó, là lỗi của họ (kể từ khi bạn đã công khai nó ở nơi đầu tiên)?

Nếu bạn có thể thay đổi chế độ hiển thị của nhà xây dựng hoặc xóa hoàn toàn, tôi sẽ thực hiện việc đó. Nếu bạn không thể xóa nó khỏi API, hãy làm cho nó được biết đến trong Javadoc cho hàm tạo mà nó không được dùng để sử dụng thông qua dịch vụ web.Bằng cách đó, bạn đã thiết lập hợp đồng với người dùng API của mình, thông báo cho họ không sử dụng nó.

Sẽ tốt hơn nếu bạn không nên sử dụng tài liệu này thay vì không ghi lại tài liệu đó (nếu công khai). Không tài liệu cho biết thêm nguy cơ rằng nó được vô tình sử dụng, và sau đó mã khách hàng sử dụng nó phá vỡ khi bạn thay đổi việc thực hiện.

1

Hiện tại giải pháp đơn giản nhất là bắt đầu nhận xét javadoc với @deprecated và sau đó vượt qua -nodeprecated đến lệnh javadoc. Tất nhiên, điều này có thể không được chấp nhận nếu bạn có các mục không dùng nữa mà bạn vẫn muốn đưa vào tài liệu.

0

Tôi đóng là sử dụng Doclava, thẻ này có thẻ @hide mà bạn có thể chỉ định trong tài liệu phương pháp.

Các vấn đề liên quan