Pregunta

Tengo una anotación java que devuelve un valor doble:

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

Cuando trato de conectar la anotación a un campo en una clase Scala y el valor es negativo como aquí:

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

Recibo un error del compilador con el mensaje: "El argumento de anotación debe ser una constante; encontrado: 0.05.Unary_-". Entendí que necesito un literal numérico y busqué la especificación del lenguaje Scala y parece que el signo solo se usa para el exponente pero no para la Mantissa. ¿Alguien tiene una idea de cómo puedo tener un valor negativo como información de tiempo de ejecución utilizando anotaciones?

Gracias Klinke

¿Fue útil?

Solución

Parece que este es un error.

Hasta que se solucione el error, puede aprovechar el hecho de que la aritmética en una constante es una constante y uso

@DoubleValue( 0-0.05 )
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top