Java >> Java tutoriál >  >> Java

Výchozí konstruktor je dobrý nebo zlý? Checkstyle a PMD jsou zde opačné

Líbí se mi odpověď PMD. Čím méně kódu, tím lépe. Nepište konstruktory, které za vás napíše kompilátor.

Můj dojem je, že hlavním argumentem pro napsání konstruktoru je to, že nějaký ubohý programátor, který nerozumí tomu, jak konstruktory v Javě fungují, by mohl narazit na váš kód a zmást. Nerad píšu kód, který je zbytečně nejasný, ale také nerad píšu otřepaný kód.

Ale to je to, že jsem posedlý a pravděpodobně nerozumný. Existuje svět aplikačních programátorů, kteří se soustředí na obchod, nikoli na jazyk, a kteří nejsou jazykovými experty. Technikou přežití, kterou mnoho lidí používá, je mít konzistentní styl, nezáleží na tom, zda je to absolutně nezbytné.


Stejně jako u mnoha rozhodnutí, která jsou „kontroverzní“, pravdou je, že na tom opravdu tolik nezáleží. Napište konstruktor nebo ne. Vliv na kvalitu a udržovatelnost vašeho kódu bude zanedbatelný. Pokud kódujete s ostatními, osvojte si stejný styl pro konzistenci, ale jinak – dělejte, co chcete.


Když je výchozí konstruktor jediným konstruktorem, je 100% ekvivalentní napsat jej explicitně s prázdným tělem nebo jej vynechat. Kompilátor však nevygeneruje výchozí konstruktor, pokud máte nějaké explicitně definované konstruktory, výchozí nebo ne. To znamená, že pokud se spoléháte na to, že kompilátor vygeneruje konstruktor za vás a později přidáte alternativní konstruktory, výchozí konstruktor zmizí. Osobně bych se přikláněl k tomu, aby generování stejně provedl kompilátor; pokud byl tento výchozí konstruktor používán, vygeneruje varování při kompilaci a lze jej v tomto okamžiku snadno přidat. Jinak, proč to vůbec držet?


Java Tag