11

double 値を返す 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 に答える