Posso avere un valore negativo come espressione costante a Scala?
-
23-10-2019 - |
Domanda
Ho un Java-annotazione che restituiscono un doppio valore:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface DoubleValue {
double value();
}
Quando provo a collegare l'annotazione a un campo in una classe di scala e il valore è negativ come qui:
class Test {
@DoubleValue(-0.05)
var a = _
}
si ottiene un errore del compilatore con il messaggio: "esigenze argomento annotazione di essere una costante, trovato: 0.05.unary_-". Ho capito che ho bisogno di un numerico letterale e ho guardato nella Scala Specifica del linguaggio e sembra, che il segno - viene utilizzato solo per l'esponente, ma non per la mantissa. Qualcuno ha un'idea di come posso avere un valore negativo come le informazioni di runtime utilizzando le annotazioni?
Grazie, Klinke
Soluzione
Sembra che questo è un bug.
Fino a quando il bug è stato risolto, si può approfittare del fatto che l'aritmetica su una costante è una costante e l'uso
@DoubleValue( 0-0.05 )