Zdá se, že reimplementace těchto pár řádků Python kódu v Javě je nad síly kritika Pythonu. Můžeme jen hádat na čem všem se zasekal :-). Budiž to ponaučením pro budoucí posměváčky.
Ne panove, to je zkratka moje prohlednuti, ze vy tu vubec nemate tuseni o cem to melete.
Pisu tady, ze signatura java metody je vcetne parametru metody a vrati se mi dotaz, jak bych asi tu python zpatlaninu udelal v Jave.
Neblábol Stando, už i ty jsi pochopil v čem a proč je Java špatná. Nenašel jsi odvahu sem dát implementaci něčeho, co je Javě vlastní (přetěžování) a pro Python je to škrábání se na krku přes hlavu. I tak to má Python stručnější a přehlednější. Pokud nesouhlasíš, hoď sem ukázku.
Budiz, mejme dva typy: A a inherited B
public class A {
public String myName() {
return "I am A";
}
}
public class B extends A {
@Override
public String myName() {
return "I am B";
}
}
Implementace dvou pretizenych nezavizlych metod, ktere se rozdisi typem parametru (coz je soucast signatury metody jak pisu potreti a mozna nekdo casem vyznam tohoto terminu pochopi):
public void method(A a) {
System.out.println("specific method 1 for \"" + a.myName() + "\"");
}
public void method(B b) {
System.out.println("specific method 2 for \"" + b.myName() + "\"");
}
Povsimneme si, ze se za tim to ucelem neimportuje zadna knihovna ani se to nemusi nikam registrovat a oznackovavat dekoratorama.
Pokud pokud si vystacim s prostredky materskeho typu pripadne interface spolecneho pro vechny typy (nejobvyklejsi varianta) - tak to zapisu jednou generickou metodou:
public <T extends A> void genericMethod(T t) {
System.out.println("generic method for \"" + t.myName() + "\"");
}
Opet, zadne dekoratory, knihovny, registrace. Pouze jedna metoda.
A ted to spustime:
method(new A());
method (new B());
genericMethod(new A());
genericMethod(new B());
Vysledek:
specific method 1 for "I am A"
specific method 2 for "I am B"
generic method for "I am A"
generic method for "I am B"
Toto jsou naproste zaklady javy, uplne mi nebere hlava, proc maj potrebu se hadat o kvalite jazyka lidi, co o nem vi kulantne receno mene nez optimum.
Ja pouzivam Javu i Python protoze je povazuju za nejlepsi jazyky v dane oblasti zajmu coz je Java pro plnotucne aplikace s dlouhou dobou podpory a Python pro jednoucelove skripty.