Question

J'ai un Java Annotation qui retourne une double valeur:

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

Quand je tente de joindre l'annotation à un champ dans une classe scala et la valeur est negativ comme ici:

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

i obtenir une erreur du compilateur avec le message: « besoins argument d'annotation à une constante Trouvée: 0.05.unary_- ». Je compris que je besoin d'un littéral numérique et je regardais dans la Scala spécification du langage et il semble que le signe - est utilisé uniquement pour l'exposant, mais pas pour la mantisse. Est-ce que quelqu'un a une idée comment je peux avoir une valeur négative que les informations d'exécution à l'aide des annotations?

Merci, Klinke

Était-ce utile?

La solution

Il semble que ce soit un bug.

Jusqu'à ce que le bug est corrigé, vous pouvez profiter du fait que l'arithmétique sur une constante est une constante et l'utilisation

@DoubleValue( 0-0.05 )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top