質問

二重値を返すJava-Annotationがあります。

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

Scalaクラスのフィールドに注釈を添付しようとすると、ここのように値が否定されます。

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

「アノテーション引数は定数である必要があります;見つかった:0.05.Unary_-」というメッセージでコンパイラエラーが表示されます。数値文字通りが必要であることを理解し、Scala言語の仕様を調べましたが、 - サインは指数にのみ使用されるが、マンティッサでは使用されていないようです。誰かが、注釈を使用してランタイム情報としてネガティブ値をどのように持つことができるかを考えていますか?

ありがとう、Klinke

役に立ちましたか?

解決

これはバグのようです。

バグが修正されるまで、定数の算術が定数であるという事実を利用することができます

@DoubleValue( 0-0.05 )
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top