Làm cách nào để tạo các tham số tùy chọn cho các chú thích riêng?


89

Sau đây là mã chú thích

public @interface ColumnName {
   String value();
   String datatype();
 }

Tôi muốn tạo datatypemột tham số tùy chọn, ví dụ:

@ColumnName(value="password") 

phải là một mã hợp lệ.

Câu trả lời:


125

Có vẻ như ví dụ đầu tiên trong tài liệu chính thức nói lên tất cả ...

/**
 * Describes the Request-For-Enhancement(RFE) that led
 * to the presence of the annotated API element.
 */
public @interface RequestForEnhancement {
    int    id();
    String synopsis();
    String engineer() default "[unassigned]"; 
    String date()     default "[unimplemented]"; 
}

1
tôi chỉ nhìn vào tutorials.ie lý do tại sao tôi couldnt tìm this.may tôi biết sự khác biệt giữa unassigned và chưa thực hiện
Biju CD

16
Không có sự khác biệt. Chúng chỉ là các giá trị Chuỗi. Chúng có thể là "peter" và "paul".
sparkyspider

5
Và nếu params của tôi là Class<?>s thì sao?
Aetherus

Trong trường hợp đó, hệ thống kiểu của Java vẫn được áp dụng. Ví dụClass<?> proxy() default Object.class
Michael Miller

35

Để làm cho nó trở thành tùy chọn, bạn có thể gán cho nó một giá trị mặc định như sau:

public @interface ColumnName {
   String value();
   String datatype() default "String";
 }

Sau đó, nó không cần được chỉ định khi sử dụng Annotation.

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.