Scala 中可以使用负值作为常量表达式吗?
我有一个返回双精度值的 Java 注释:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface DoubleValue {
double value();
}
当我尝试将注释附加到 scala 类中的字段并且该值是负值时,如下所示:
class Test {
@DoubleValue(-0.05)
var a = _
}
我收到编译器错误,并显示以下消息:“注释参数需要是常数;发现:0.05.unary_-"。我知道我需要一个数字文字,并且我查看了 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 that 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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看来这是一个错误。
在错误修复之前,您可以利用常量算术是常量这一事实并使用
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