Wie erstelle ich optionale Parameter für eigene Anmerkungen?


89

Es folgt der Anmerkungscode

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

Ich möchte datatypezum Beispiel einen optionalen Parameter machen

@ColumnName(value="password") 

sollte ein gültiger Code sein.

Antworten:


125

Scheint, als ob das erste Beispiel in der offiziellen Dokumentation alles sagt ...

/**
 * 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
Ich habe mir nur die Tutorials angesehen. Warum konnte ich das nicht finden? Vielleicht kenne ich den Unterschied zwischen nicht zugewiesen und nicht implementiert
Biju CD

16
Es gibt keinen Unterschied. Sie sind nur String-Werte. Sie könnten "Peter" und "Paul" sein.
Sparkyspider

5
Und was ist, wenn meine Parameter Class<?>s sind?
Ätherus

In diesem Fall gilt weiterhin das Java-Typsystem. Zum BeispielClass<?> proxy() default Object.class
Michael Miller

35

Um es optional zu machen, können Sie ihm einen Standardwert wie den folgenden zuweisen:

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

Dann muss es bei Verwendung der Anmerkung nicht angegeben werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.