2012-08-11 21 views
5

Widziałem podobny problem występujący w JRuby w 2010 roku, gdy próbowaliśmy przesłonić w Jrubym metodę, która została przeciążona orginalnie w kodzie źródłowym java. Jak sobie z tym poradzić w Jython? Dokładniej, jak mogę określić dla jednej z metod, które są przeciążone, aby zastąpić i zignorować pozostałe lub w jaki sposób mogę je wszystkie zastąpić?Metoda nadpisywania Jython o tej samej nazwie

Dziękuję

+0

Czy próbujesz wywołać metodę przeciążoną lub zdefiniować ją w Pythonie? – delnan

+0

Próbuję wywołać konkretną metodę, która została przeciążona w Javie i nadpisuję Jython. –

Odpowiedz

1

Python nie obsługuje metody przeciążenia (ale ma wartości domyślne wsparcie).

def my_function(paramA, paramB = None): 
    pass 

Ponieważ Jython jest zaledwie implementacją w Pythonie, uważam, że to samo jest prawdą.

+1

w prawo ... Czy mógłbyś podać więcej szczegółów na temat tego, w jaki sposób mogę użyć wartości domyślnych do określenia, która metoda jest przeciążona? Dzięki –

0

Aby wywołać określoną metodę Java z Jython, konieczne może być dokładne dopasowanie typów lub nawet ich dokładne dopasowanie.

Jython ma wartość type coercion, ale istnieją sytuacje, w których nie zostanie wybrana żądana metoda.

Aby wywołać metody publiczne w określonych klasach bazowych, można użyć BaseClass.method(self, ...). Aby wywołać metody chronione, musisz prefix nazwę metody, taką jak self.super__method(...).

Powiązane problemy