Fordítási módszerek összehasonlító oldalakon nyúlik a java, stokito szoftver

Kivonat a fordító

Nos, nézzük felvázolja a problémát - hasonlítsa dátuma tárgyak Java ismert hibaforrás.
Úgy tűnik, a szabványos kódot, de az is előfordul, a tesztelési kódot, ahol rendszeresen kell létrehozni Date objektumokat jelöljön meg egy időpontban, amikor utalni fogunk később képest.

A vizsgálat kódot, nem aggódni, hogy a feleslegessé (elavult) módszerekkel. Szóval egy régi, Date konstruktor inicializálása a dátumot, aztán hasonlítsuk össze más tárgyakat a dátum egyenlő () metódus az összehasonlítás:

A kanonikus módja

Kezdve a Java 1.1 a Java API került a naptár osztályban, hogy osztoznak a pillanatban (azaz dátuma) képviseletét egy adott könyvtárban (naptár). A következő kód-fragmens (részlet) olyan módon, hogy megkapjuk ugyanazt az eredményt, mint a fenti.

Ez nem csak egy hosszadalmas, itt is van egy hiba: óra, perc, és a többi nem egyenlő nullával (az az idő a közvetlen teremtés a naptár), így összehasonlítást az egyenlő () false értéket ad vissza. Itt a helyes kódot:

Legalábbis ez rontja rövidsége 😉

Apache Commons Lang

Apache Commons eredetileg utilitnye különféle könyvtárak, amelyek megkönnyítik a fejlesztés a Java. Az egyik ilyen könyvtár Apache Commons Lang, amely funkciót, amely megérdemli, hogy része legyen a Java API-t. Esetünkben DateUtils osztály lehetővé teszi számunkra, hogy csökkentsék a kódot, miközben az olvashatóság:

Még jobb, DateUtils lehetővé teszi számunkra, hogy közvetlenül a Date objektum az alternatív formában:

Felhívjuk figyelmét, hogy érintetlenül hagyja a paramétereket, elérve állandóság (állandóság) funkcionális programozás elvét.
Előnyök: Az általunk használt szabványos Java API-t.
Hátrányai: igen nem. És mégis, nem lenne ilyen teljes DSL tűnik valami megfelelőbb?

Az utolsó lehetőség, hogy a Joda idő könyvtárban. amelynek célja, hogy helyettesítsék a dátum és naptár. Azt is szült egy JSR-310 - egy új, továbbfejlesztett API manipulálására dátumot és az időt, amely része lesz a Java 8 (ez volt az eredetileg tervezett Java 7). Joda időt érdemes egy külön cikket (vagy akár egy mini-guide). A mi jelenlegi igényeinek a következő kódrészletet előnyös lehet cserélni az eredeti:

Ha összehasonlítjuk az első példában az alábbi kódot jelenik tisztább és tömörebb. És mégis, a paramétereket önleíró, nincs valós igény, hogy rendszeresen ellenőrizni kell, hogy milyen JavaDocs inicializált évben. Ezen túlmenően, a szemantika osztály nevek világos. Végül todate () metódus ad nekünk egy híd a szabványos Java API-t.

következtetés

Döntetlen a saját következtetéseit. Személy szerint, én szoktam használni Apache Commons Lang, de az utóbbi években inkább Joda Time. Archív kóddal minta letölthető itt, mint egy Maven projekt keretében Eclipse.