Can i have a negative value as constant expression in Scala?
I have an Java-Annotation that return a double value:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface DoubleValue {
double value();
}
When i try to attach the annotation to a field in a scala class and the value is negativ like here:
class Test {
@DoubleValue(-0.05)
var a = _
}
i get an compiler error with the message: "annotation argument needs to be a constant; found: 0.05.unary_-". I understood tha开发者_如何学Got i need a numerical literal and i looked into the Scala Language Specification and it seems, that the - sign is only used for the exponent but not for the mantissa. Does someone has an idea how i can have a negative value as runtime information using annotations?
Thanks, Klinke
It appears that this is a bug.
Until the bug is fixed, you can take advantage of the fact that arithmetic on a constant is a constant and use
@DoubleValue( 0-0.05 )
精彩评论