2010-02-14 31 views
22

Tôi đang sử dụng IDE Eclipse cho Dự án Java của mình.Làm cách nào để tự động cập nhật Javadoc khi thay đổi chữ ký phương thức trong Eclipse?

Tôi có một vấn đề. Tôi có phương pháp trong dự án của tôi có những ý kiến ​​javadoc như như sau:

/** 
* Retruns the string representation of a input stream 
* @param in 
* @return 
* @throws IOException 
*/ 
public static String getStringFromInputStream (InputStream in) throws IOException { 
    StringBuffer out = new StringBuffer(); 
    byte[] b = new byte[4096]; 
    for (int n; (n = in.read(b)) != -1;) { 
     out.append(new String(b, 0, n)); 
    } 
    return out.toString(); 
} 

Bây giờ tôi muốn biết rằng Có cách nào mà bất cứ khi nào nếu tôi thực hiện thay đổi trong phương pháp chữ ký của tôi, những thay đổi đó phản ánh trong javadoc tự động.

+2

Có thể là tốt để retitle này. Không có vấn đề gì với javadoc như các tuyên bố về tiêu đề. Có lẽ một cái gì đó dọc theo dòng "Refactoring từ JavaDoc thay đổi trong Eclipse". Tôi không nghĩ rằng bạn có thể làm điều này mà không cần viết một plugin, btw. –

+0

** Điều này vẫn mở để trả lời !!!! **. Tất cả câu trả lời đều đề cập đến tùy chọn refactor. Nhưng nếu tôi thêm một param mới hoặc xóa một param từ chữ ký phương thức. Trong trường hợp đó, làm thế nào để cập nhật javadoc? – mtk

+0

Guys kiểm tra câu trả lời của tôi cho một workaround! – mtk

Trả lời

1

Bấm Atl+Shift+R và thay đổi

+1

Chỉ hoạt động với tên thông số. Thay đổi chữ ký cũng bao gồm thêm/xóa tham số, thay đổi mệnh đề ném, v.v. – whiskeysierra

+2

Về mặt kỹ thuật, đây chỉ là lệnh [cho 'Refactor'>' Rename'] (http://www.n0sl33p.org/dev/eclipse_keys.html). – Pops

4

Tôi không biết cách nào để tự động đồng bộ hóa tiêu đề Javadoc, nhưng nếu bạn đổi tên tham số bằng cách sử dụng Ctrl-1 + Rename in file, tiêu đề Javadoc được đổi tên thích hợp.

10

Eclipse cung cấp tùy chọn khá tốt để đảm bảo tính chính xác của javadoc bên cạnh cấu trúc lại Rename JesperE đề cập:

  • Các Thay đổi phương pháp chữ ký hoạt động cấu trúc lại cũng sẽ thay đổi javadoc (thêm/xóa thẻ cần thiết). Bạn nên sử dụng tên này hoặc Đổi tên để sửa đổi mã đã được sử dụng.
  • Nếu bạn kích hoạt Thêm thẻ Javadoc trên Preferences/Java/Biên tập viên/Gõ trang sau đó Eclipse tạo ra javadoc còn sơ khai chính xác sau khi gõ /** + Nhập trước một phương pháp.

Bạn cũng có thể thiết lập tùy chọn biên dịch để kiểm tra javadoc thiếu thẻ trên Preferences/Java/biên dịch/Javadoc. Trong trường hợp này, bạn nhận được cảnh báo từ trình biên dịch về thẻ bị thiếu/thêm và bạn có quickfix (Ctrl + 1) để sửa chúng. Nó là một lựa chọn tốt để đảm bảo tính chính xác của các javadocs hiện có trong thời gian dài.

2

Tái cấu trúc với tùy chọn "Cập nhật tham chiếu" là không đủ. Bạn cần đảm bảo rằng "Tiến trình Javadoc quy trình" được chọn trong Window-> Preferences, Java-> Compiler-> Javadoc. Tinh chỉnh trang ưu tiên như bạn thích và nó sẽ hoạt động tốt.

1

Như tôi đã nhận xét kịch bản, trong đó cấu trúc lại sẽ không làm việc

Tất cả các câu trả lời tham khảo cấu trúc lại tùy chọn. Nhưng nếu tôi thêm một param mới hoặc xóa một param từ chữ ký phương thức. Trong trường hợp đó, làm thế nào để cập nhật javadoc?

Có một workaround tôi thấy, nhưng có nó vẫn không phải là một quá trình tự động và không tốt cho số lượng lớn các thay đổi này.

Giải pháp thay thế là,
1. xóa nhận xét javadoc và đưa ra nhận xét đơn giản tức là cập nhật /**' and change it to just/* '.
2. Bây giờ một lần nữa ngay trên chữ ký/khai báo phương thức nhập /** và nhấn enter. Nó sẽ điền lại các thông số cập nhật và thông tin trả về.Bây giờ, chỉ cần di chuyển các dòng mô tả từ nhận xét cũ sang nhận xét mới.
3. Bạn có thể sử dụng Alt + Lên/Mũi tên xuống để đạt được điều này.
4. Xong xóa bình luận javadoc cũ sau khi nó được sao chép đúng chỗ.

+1

_ "Nhưng nếu tôi thêm một tham số mới hoặc xóa một tham số từ chữ ký phương thức. Trong trường hợp đó, làm thế nào để cập nhật javadoc?" _ - Câu trả lời của Csaba_H giải quyết vấn đề này; bạn sử dụng _Refactor_> _Change Method Signature ..._ và nó sẽ thêm và/hoặc remove param (s) trên cả chữ ký phương thức _and_ javadoc. –

2

Chỉ cần nhấn ALT + SHIFT + j vào tên phương pháp và xóa các dòng thêm:

TRƯỚC:

/** 
* Copies all the details from the passed template into the passed new 
* header. 
* 
* @param pNewHeader 
*/ 
private void doCopy(int pNewHeader, int pTemplate) { 

SAU:

/** 
* Copies all the details from the passed template into the passed new 
* header. 
* 
* @param pNewHeader << DELETE 
*/     << DELETE 
/**     << DELETE 
* @param pNewHeader 
* @param pTemplate 
*/ 
private void doCopy(int pNewHeader, int pTemplate) { 
Các vấn đề liên quan