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

StackOverflow https://stackoverflow.com/questions/2959311

Вопрос

У меня есть аннотация Java, которая возвращает двойное значение:

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

Когда я пытаюсь прикрепить аннотацию к поле в классе Scala, и значение негативно здесь:

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

Я получаю ошибку компилятора с сообщением: «аргумент аннотации должен быть постоянным; найдено: 0,05.unary_-». Я понял, что мне нужен числовой буквал, и я изучил спецификацию языка Scala, и кажется, что знак используется только для показателя, но не для мантиссы. У кого -то есть идея, как я могу иметь негативную ценность в качестве информации о выполнении с использованием аннотаций?

Спасибо, Клинке

Это было полезно?

Решение

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

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

@DoubleValue( 0-0.05 )
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top