Podporuje Java predvolené hodnoty parametrov?

Narazil som na kód v Jave, ktorý mal nasledujúcu štruktúru:

public MyParameterizedFunction(String param1, int param2)
{
    this(param1, param2, false);
}

public MyParameterizedFunction(String param1, int param2, boolean param3)
{
    //use all three parameters here
}

Viem, že v C++ môžem parametru priradiť predvolenú hodnotu. Napríklad:

void MyParameterizedFunction(String param1, int param2, bool param3=false);

Podporuje Java tento druh syntaxe? Existujú nejaké dôvody, prečo je táto dvojstupňová syntax vhodnejšia?

Riešenie

Nie, štruktúra, ktorú ste našli, je taká, akú ju používa Java (t. j. s preťažením namiesto predvolených parametrov).

Pokiaľ ide o konštruktory, Pozri príručku Effective Java: Programming Language Guide's bod 1 tipu (Zvážte statické továrenské metódy namiesto konštruktorov), ak sa preťažovanie komplikuje. Pri ostatných metódach môže pomôcť premenovanie niektorých prípadov alebo použitie objektu parametra. To vtedy, keď máte dostatočnú zložitosť, že rozlišovanie je ťažké. Definitívny prípad je ten, keď musíte rozlišovať pomocou poradia parametrov, nielen pomocou počtu a typu.

Komentáre (7)

Bohužiaľ, nie.

Komentáre (13)

Nie.

Rovnaké správanie môžete dosiahnuť odovzdaním objektu, ktorý má inteligentné predvolené hodnoty. Ale opäť záleží na tom, o aký prípad ide.

Komentáre (0)