Bagaimana cara membuat parameter opsional untuk anotasi sendiri?


89

Berikut adalah kode anotasi

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

Saya ingin membuat datatypeparameter opsional, misalnya

@ColumnName(value="password") 

harus menjadi kode yang valid.

Jawaban:


125

Sepertinya contoh pertama dalam dokumentasi resmi mengatakan itu semua ...

/**
 * 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
saya hanya melihat tutorialnya. yaitu mengapa saya tidak dapat menemukan ini. bolehkah saya tahu perbedaan antara tidak ditetapkan dan tidak diterapkan
Biju CD

16
Tidak ada perbedaan. Itu hanya nilai String. Mereka bisa jadi "peter" dan "paul".
sparkyspider

5
Dan bagaimana jika parameter saya adalah Class<?>s?
Aetherus

Dalam hal ini, sistem tipe Java masih berlaku. MisalnyaClass<?> proxy() default Object.class
Michael Miller

35

Untuk menjadikannya opsional, Anda dapat menetapkannya ke nilai default seperti itu:

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

Maka itu tidak perlu ditentukan saat menggunakan Annotation.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.