Подтвердить что ты не робот

Могу ли я иметь отрицательное значение как постоянное выражение в Scala?

У меня есть 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 Language Specification, и кажется, что знак - используется только для экспоненты, но не для мантиссы. У кого-то есть идея, как я могу иметь отрицательное значение в качестве информации о времени выполнения, используя аннотации?

Спасибо, Klinke

4b9b3361

Ответ 1

Похоже, что это ошибка.

Пока ошибка не исправлена, вы можете воспользоваться тем фактом, что арифметика на константе является константой и использует

@DoubleValue( 0-0.05 )