จะสร้างพารามิเตอร์ทางเลือกสำหรับคำอธิบายประกอบของตัวเองได้อย่างไร?


91

ต่อไปนี้คือรหัสคำอธิบายประกอบ

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

ฉันต้องการสร้างdatatypeพารามิเตอร์ที่เป็นทางเลือกตัวอย่างเช่น

@ColumnName(value="password") 

ควรเป็นรหัสที่ถูกต้อง

คำตอบ:


127

ดูเหมือนตัวอย่างแรกในเอกสารอย่างเป็นทางการกล่าวไว้ทั้งหมด ...

/**
 * 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
ฉันดูบทช่วยสอนเท่านั้นนี่คือสาเหตุที่ฉันไม่พบสิ่งนี้ขอฉันทราบความแตกต่างระหว่างไม่ได้มอบหมายและไม่ได้ใช้
Biju CD

16
ไม่มีความแตกต่าง เป็นเพียงค่าสตริง อาจเป็น "ปีเตอร์" และ "พอล"
sparkyspider

5
แล้วถ้าพารามิเตอร์ของฉันเป็นClass<?>s ล่ะ?
Aetherus

ในกรณีนั้นระบบชนิดของ Java ยังคงใช้งานได้ ยกตัวอย่างเช่นClass<?> proxy() default Object.class
ไมเคิลมิลเลอร์

35

หากต้องการทำให้เป็นทางเลือกคุณสามารถกำหนดค่าเริ่มต้นได้ดังนี้:

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

จากนั้นไม่จำเป็นต้องระบุเมื่อใช้คำอธิบายประกอบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.