Frage

Ich habe eine Java-Annotation, die einen Doppelwert zurückgibt:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface DoubleValue {
  double value();
} 

Wenn ich versuche, die Annotation an einem Feld in einer Skala -Klasse anzuhängen, ist der Wert negativ wie hier:

class Test {
  @DoubleValue(-0.05)
  var a = _
}

Ich erhalte einen Compiler-Fehler mit der Nachricht: "Annotationsargument muss eine Konstante sein; gefunden: 0.05.Unary_-". Ich verstand, dass ich ein numerisches wörtliches Literal brauche und ich habe mich mit der Skala -Sprachspezifikation befasst und es scheint, dass das Zeichen nur für den Exponenten verwendet wird, aber nicht für die Mantissa. Hat jemand eine Idee, wie ich einen negativen Wert als Laufzeitinformationen mit Anmerkungen haben kann?

Danke, Klinke

War es hilfreich?

Lösung

Es scheint, dass dies ein Fehler ist.

Bis der Fehler repariert ist, können Sie die Tatsache nutzen, dass die Arithmetik konstant eine Konstante und Verwendung ist

@DoubleValue( 0-0.05 )
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top