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.