Mam java-adnotacji, że powrót podwójną wartość:Czy mogę mieć wartość ujemną jako wyrażenie stałe w Scali?
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface DoubleValue {
double value();
}
Kiedy próbuję dołączyć adnotacji do pola w klasie scala i wartość jest ujemny jak tutaj:
class Test {
@DoubleValue(-0.05)
var a = _
}
otrzymuję komunikat kompilatora z komunikatem: "argument adnotacji musi być stałą, znalezioną: 0.05.unary_-". Zrozumiałem, że potrzebuję literalnego tekstu i zajrzałem do specyfikacji języka Scala i wydaje się, że znak jest używany tylko dla wykładnika, ale nie dla mantysy. Czy ktoś ma pomysł, w jaki sposób mogę mieć wartość ujemną jako informacje o środowisku wykonawczym za pomocą adnotacji?
Dzięki Klinke
Wygląda na to znalazłeś ciemnej strony operatorów metod. :) –
Używasz Scala 2.7? Obsługa adnotacji w 2.8 jest znacznie poprawiona. –
* Aktualizacja: * Wygląda na to, że ta "funkcja" pozostaje w wersji 2.8. Właśnie to przetestowałem. –