Advanced Java? Bullshit!
Mások forráskódjával dolgozni mindig tanulságos volt. A legjobban azt szeretem, mikor tanulhatok belőle. Most is vár pár open source project, hogy alaposabban megismerkedjek a forráskódjával, hogy ellessek megoldásokat és fejlesszem magam.
Sajnos azért ennek az ellenkezőjét is megtapasztalom.
néha úgy érzem, hogy naiv vagyok. Azt gondolom hogy vannak olyan programozástechnikai megoldások, amik csak a kezdők számára nem mennek rutinból. ezek egyike, mikor java-ban konstans objektummal szemben végzel kommutatív (felcserélhető) műveleteket (például equals
).
Mire is gondolok:
1if (moreformats != null && moreformats.length() > 0 && !moreformats.equalsIgnoreCase("All"));
Mi ezzel a gond? Semmi. Működik és jól végzi a dolgát. A gond akkor merül fel, mikor olvasnod kell. Kicsit nehézkes. Van ennél egy olvashatóbb megoldás is:
1if(! "All".equalsIngosrcase(moreformats));
A kulcs az, hogy konstans objektumnak küldve üzenetet nem kell foglalkoznunk a NULL ellenőrzéssel.
Nem tűnik nagy nyerésnke, de ha egy kicsit komplexebb példát veszünk jobban látszik a különbség.
1if ((filterName != null && filterName.length() > 0 && !filterName.equalsIgnoreCase("All")) || 2 (moreformats != null && moreformats.length() > 0 && !moreformats.equalsIgnoreCase("All")) || 3 (moredate != null && moredate.length() > 0 && !moredate.equalsIgnoreCase("All")) || 4 (secondLang != null && secondLang.length() > 0 && !secondLang.equalsIgnoreCase("All"))) { 5 out.println(" | " + labels.getString("from")); 6}