我可以在Scala中作为常量表达式使用负值吗?

时间:2010-06-02 15:49:33

标签: scala annotations constant-expression

我有一个返回double值的Java-Annotation:

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

当我尝试将注释附加到scala类中的字段时,该值为negativ,如下所示:

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

我收到编译错误消息:“annotation参数需要是常量;找到:0.05.unary_-”。我明白我需要一个数字文字而且我查看了Scala语言规范,似乎 - 符号仅用于指数但不用于尾数。有人知道如何使用注释将负值作为运行时信息吗?

谢谢, Klinke

1 个答案:

答案 0 :(得分:7)

看来这是一个错误。

在修复错误之前,您可以利用常量上的算术是常量并使用

这一事实
@DoubleValue( 0-0.05 )