W Scala możemy mieć metody bez parametrów, które mogą być bardzo przydatne do celów DSL; są również używane do automatycznego definiowania modułów pobierających dla pól klasy.Czy można zadeklarować metody bez parametrów w Javie do użycia w Scali?
Pracuję nad biblioteką Java, którą chciałbym zintegrować tak bezproblemowo ze Scala, jak to tylko możliwe. Zastanawiam się, czy istnieje sposób na opisanie metody Java z pustą listą parametrów, aby Scala rozpoznała ją jako bez parametrów.
Na przykład
class Foo {
@ParameterLess
public String[] bar() { return someArray; }
}
tak że w Scala mogę zrobić:
val f = new Foo
f bar (0)
bez kompilator narzekać bar() posiadający pustą listę argumentów?
Czy istnieje sposób zdefiniowania pobierających i ustawiających w stylu Scala z Javy?
Uwaga: oczywiście wiem, że w tym konkretnym przykładzie mogę obejść ten problem poprzez zdefiniowanie
public String bar(int i) { return someArray[i]; }
Czy próbowałeś z prętem (Object ... os)? – Luciano
musisz wywołać 'f bar() (0)' w twoim przykładzie, aby kompilator mógł rozróżnić parametry i indeks tablicy. – aishwarya
Oczywiście. Zastanawiam się, czy istnieje sposób na wskazanie Scali, że 'bar()' powinien działać jako 'bar' –