2016-07-13 48 views
6

Làm cách nào để tạo tham chiếu, trong javadoc, thành tham số phương thức, để tham chiếu có thể được tái cấu trúc?
Ví dụ:Tham chiếu Refactorable đến tham số phương thức trong javadoc

public class A { 

    private int field; 

    /** 
    * @param p 
    * {@link #field} is initialized using the value of p. 
    */ 
    void foo(int p) 
    { 
     //... 

    } 
}  

Nếu tôi đổi tên tham số p trong đoạn mã trên, tôi muốn

"... sử dụng giá trị của p"

văn bản để thay đổi cho phù (giống như trường đổi tên sẽ thay đổi {@link #field}).
Tôi đã đọc this bài đăng cũ và một số nguồn khác, nhưng không thể tìm thấy cách để thực hiện.
Javadoc có hỗ trợ không?

+0

Câu hỏi & trả lời bạn đã liên kết với các tiểu bang khá rõ ràng rằng không có tính năng nào như vậy trong JavaDoc.Tại sao câu hỏi này không được đóng dưới dạng trùng lặp? –

Trả lời

1

Do việc xóa Java, tên đối số phương thức là tạm thời, chúng không phải là một phần của định nghĩa lớp tĩnh. Vì vậy, void foo(int p) bị thay đổi thành void foo(int x) không được coi là tái cấu trúc, bởi vì nó được đảm bảo rằng nó sẽ không ảnh hưởng đến logic của chương trình theo bất kỳ cách nào (trừ khi đối số là quá tải một trường lớp).

Vì vậy, trong javadoc, không thể có liên kết tĩnh xác định đối số phương thức. Thực tế là từ sau @param thay đổi khi bạn cấu trúc lại phương thức là một ưu tiên được cung cấp bởi IDE.

1

Bạn đã cố định cấu hình tùy chọn javadoc eclipse chưa? Window-> Preferences, Java-> Compiler-> Javadoc. Kiểm tra Quy trình Javadoc nhận xét tùy chọn.

Ngoài ra nếu bạn kiểm tra Window-> Preferences-> Java-> tổng biên tập> Typing-> Javadoc và bình luận vùng + Thêm thẻ Javadoc nó sẽ thêm các thẻ javadoc appropiated. Khi bạn đã kích hoạt cả Eclipse, bạn sẽ cảnh báo cho bạn về các thông số bị nhầm lẫn và bạn có thể sử dụng ctrl để "sửa lỗi nhanh".

+2

Cảm ơn bạn đã trả lời. Các tùy chọn này rất hữu ích. Họ không giúp đỡ với vấn đề tôi nêu ra. – c0der

2

IDE của bạn sẽ có thể cấu trúc lại tên nếu bạn đặt tên sau @param (được thử nghiệm trong Eclipse), nhưng không phải nếu bạn tham chiếu nó ở nơi khác trong nhận xét. Từ góc độ ngôn ngữ, không có lý do để làm điều này. Tại sao không chỉ viết @param p {@link #field} is initialized using this value.?

+0

Cảm ơn bạn đã trả lời. Có, tôi biết rằng nó sẽ làm việc cho '@param p và một số văn bản'. Nó không hoạt động với 'một số văn bản @param p' – c0der

1

IntelliJ IDEA sẽ cấu trúc lại tên tham số ở bất kỳ đâu trong nhận xét JavaDoc miễn là bạn đặt nó vào dấu ngoặc nhọn, ví dụ: {@param p}

/** 
* @param p 
* {@link #field} is initialized using the value of {@param p}. 
*/ 

Ngoài ra, xóa kiểu Java (như đã đề cập trong phản hồi được chấp nhận) không liên quan gì đến phạm vi tên biến. Loại xóa là sự thỏa hiệp mà các nhà thiết kế Java thực hiện để thêm Java Generics nhưng vẫn giữ cho ngôn ngữ tương thích ngược. Tất cả các tham số của generics bị xóa - không có gì thực sự làm cho nó thành mã byte. Đây là lý do tại sao Java Generics rất hạn chế - bạn không thể làm ví dụ:

T myT = new T(); 

nếu T là kiểu tham số, vì khi chạy, mọi thông tin về T đã bị xóa.

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