Я хочу расширить класс, который реализован на Java. Вот пример:Как получить доступ к полю суперкласса, который реализован в Java, который также имеет метод с одинаковым именем?
public interface JavaInterface {
/** Computes foo. */
public String foo();
}
public class ThisIsJava implements JavaInterface {
protected String foo = "foo";
/** Returns value of property foo. */
public String foo() { return foo; }
}
Но как я неоднозначность между полем и метод Foo, когда я расширим этот класс в Scala?
class ThisIsScala extends ThisIsJava {
def fooBar = super.foo + "/bar" // doesn't compile
}
'super.foo()' не работает? – Nicolas
Спасибо всем. Теперь я изменил свой код Scala, чтобы реализовать интерфейс Java напрямую, чтобы обойти эту проблему. Кажется, только рефлексия решит его, но это неприемлемо, потому что оно медленное и невосприимчивое к рефакторингу. –