2016-10-31 15 views
10

Làm thế nào để bạn đi về ghi lại nội dung của các tham số args trong:Làm thế nào để tài liệu args trong Java chính

public static void main(String[] args) { 
    ... 
} 

Tôi không yêu cầu về cách sử dụng thẻ @param khối trong javadoc, nhưng thay vào đó như thế nào để ghi lại nội dung của từng mục trong mảng.

Ví dụ: "args [1] là chiều rộng, args [2] là chiều cao, v.v ...".

Có phải là <ol><li></li></ol> cách để đi không?

+2

Một lưu ý là trong trường hợp 'main' (nghĩa là chương trình CLI), hầu hết người dùng sẽ không đọc mã nguồn. Có các thư viện kiểu getopt để giúp bạn phân tích các đối số dòng lệnh và một số trong chúng cung cấp hỗ trợ thuận tiện cho việc in thông tin sử dụng (chẳng hạn như trong trường hợp đầu vào không hợp lệ hoặc '--help'). – chrylis

+1

Sử dụng JCommander để xử lý điều này – Antoniossss

+3

Hãy xem xét các đối số vị trí ('args [1]' có nghĩa là foo, 'args [2]' có nghĩa là thanh, v.v.) ít mạnh hơn các đối số được đặt tên ('--foo = ...' , '--bar = ...' etc), vì bạn có thể thêm và xóa các đối số, nhưng sau đó quên đổi chúng trong tài liệu - hoặc tệ hơn, bạn đã đưa chúng vào các tập lệnh được rải rác xung quanh codebase của bạn, và sau đó bạn đã cập nhật tất cả. –

Trả lời

5

Bạn chỉ có thể làm điều đó một cách không chính thức, bằng cách viết xuống một số văn bản trong javadoc của bạn mô tả các đối số được mong đợi.

Có nghĩa là: không có phương pháp tiếp cận chính xác nào ở đây.

Nói cách khác: bạn nên sử dụng tùy chọn đó, tùy chọn phù hợp nhất với bạn và những người khác trong nhóm/dự án của bạn.

Nếu "team styleguide" của bạn cho phép (yêu cầu?) Bạn sử dụng thẻ HTML trong javadoc, sau đó sử dụng thẻ HTML. Nếu nhóm của bạn có một số phương pháp tiếp cận phức tạp hơn cho phép một số loại ngôn ngữ đánh dấu, sau đó sử dụng ngôn ngữ đó. Nếu không, có thể bạn chỉ nên sử dụng {@code} để đánh dấu một số phần nhất định.

Dài câu chuyện ngắn: không có quy tắc chính xác ở đây; vì vậy bạn nên làm những gì phù hợp nhất với nhu cầu của bạn.

Nhưng xin lưu ý: có thể javadockhông quá quan trọng cuối cùng. Nếu bạn nghĩ rằng ứng dụng của bạn được sử dụng trực tiếp từ dòng lệnh, thì trọng tâm chính của bạn nên là một cái gì đó giống như "java -jar yourjar --help" cho đầu ra hợp lý. Và bạn không tái phát minh ra bánh xe về phân tích cú pháp "đối số". Nói cách khác: có khá nhiều thư viện trên mạng mà bạn có thể sử dụng để phân tích cú pháp dòng lệnh. Và tôi khá chắc chắn rằng họ nên có hỗ trợ cho việc lập tài liệu đối số tiềm năng cho người dùng dòng lệnh.

Điều tôi đang nói là: trong cài đặt "bình thường", tôi hy vọng rằng những người quan tâm đến việc gọi phương thức chính của bạn sẽ không phải là đang đọc javadoc. Họ muốn nhìn vào một số màn hình trợ giúp để hiểu những lựa chọn nào họ có thể sử dụng!

2

Bạn đang ở ranh giới của khung công tác Java. Đối số cho main được môi trường thời gian chạy máy chủ cung cấp dưới dạng mảng chuỗi ký tự. Bạn sẽ phải viết mã để xác định ý nghĩa của các chuỗi này. Đối với các phương thức khác mà bạn viết, bạn có thể khai báo nhiều đối số để biểu diễn mỗi đầu vào cho phương thức đó và sử dụng cú pháp javadoc @param để ghi lại từng đối số.

Xem cách người khác làm: String.format - Mặc dù điều này làm cho việc sử dụng cú pháp vararg, nhưng nó nằm dưới mui xe được chuyển đổi thành một mảng.

Để trả lời câu hỏi của bạn: Không có cách nào chính xác để thực hiện việc này.

2

Bạn có thể xem tài liệu apache-commons-cli usage phục vụ như một thư viện chung để xử lý cli trên cộng đồng Java.

Thư viện CLI của Apache Commons cung cấp API để phân tích cú pháp lệnh tùy chọn dòng được chuyển đến chương trình. Nó cũng có thể in thông báo trợ giúp nêu chi tiết các tùy chọn có sẵn cho công cụ dòng lệnh.

Phát biểu cuối cùng phù hợp với chính xác những gì bạn đang yêu cầu. Dưới đây là hình thức khả năng xử lý dòng lệnh hỗ trợ chung cli:

  1. POSIX như tùy chọn (. Tức là tar -zxvf foo.tar.gz)
  2. GNU như tùy chọn dài (tức là du --human. có thể đọc được --max-depth = 1)
  3. Các thuộc tính Java giống như (java -Djava.awt.headless = true -Djava.net.useSystemProxies = true Foo)
  4. Các tùy chọn ngắn có giá trị được đính kèm (ví dụ: gcc -O2 foo.c)
  5. tùy chọn dài với dấu gạch nối đơn (ví dụ: ant -projecthelp)

Nếu bạn muốn thực hiện của riêng bạn, bạn vẫn có thể lấy một gợi ý từ tài liệu của họ.

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