Puis-je avoir une valeur négative expression constante à Scala?
-
23-10-2019 - |
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
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 )