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

È stato utile?

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 )
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top