11

我有一个返回双精度值的 Java 注释:

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

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

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

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

谢谢,克林克

4

1 回答 1

7

看来这是一个错误。

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

@DoubleValue( 0-0.05 )
于 2010-06-02T18:07:03.913 回答