我有一个Java通用,返回双重值:

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

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

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

我在消息中遇到了一个编译器错误:“注释参数必须是常数;找到:0.05.unary_-”。我知道我需要一个数字文字,并且我研究了Scala语言规范,似乎 - 符号仅用于指数,但不用于曼蒂萨(Mantissa)。有人知道我如何使用注释如何具有负值作为运行时信息的负值?

谢谢,klinke

有帮助吗?

解决方案

看来这是一个错误。

在固定错误之前,您可以利用一个事实,即常数算术是常数且使用

@DoubleValue( 0-0.05 )
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top