Ígéri nekünk, hogy az átmenet a tudásbázis 8 java
Nem is olyan régen érte el a kezét, hogy a figyelmet a Java 8. Miután elolvasta a Java 8 és Java Bemutató Áramlat 8 érdekes volt a kísérlet, és megérteni, hogy mit várunk el az alapvető újítások, valamint - akár képes lesz valahogy egyszerűsíteni az amúgy is nehéz sors Automator. A részletes eredményeket a kísérlet megtalálható a blogomban.
Talán fogok kezdeni egy példa, amit idézett egy friss sorrendben. Mindannyian így vagy úgy felmerült problémák elvárásainak minden eleme az oldalon. Mint az egyik lehetséges megoldás lehet, hogy a megvalósítása egy egyéni findElement:
findElement.png 986x221 15.1 KB
Itt csak egy feltétellel - ExpectedConditions.visibilityOfElementLocated. A közönséges forgatókönyveket is elég lehet. De ha kell valami, univerzális, egyértelműen nem nélkülözheti a kerékpár.
funcInt.png 1337x269 20 KB
Valójában, amellett, hogy a lokátor és időtúllépés funkció bemenet 1 bemenet (általában) / 1 kimenet (ExpectedCondition
Ha jobban megnézed, hogy az aláírás és a visszatérési típus a legérdekesebb módszer ExpectedConditions osztályban. megjegyezzük, hogy azok ideálisak a funkciót. Ennek eredményeként, egy speciális szimbólum :: tudunk hivatkozni, hogy a statikus módszer legyen az osztály, és adja át őket az egyik paraméter findElement.
Ez az úgynevezett módszerek hivatkozásokat. By the way, tudjuk használni a linkeket nem csak a statikus módszer, hanem alkalmazni kell a módszerek egy adott objektumot. Mennyivel könnyebb volt, hogy írni általános módszerektől, nem?
Ezen felül, akkor bizonyára észrevette legalább érdekes design - opcionális. Ez a beépített függvény felületén, ami ideális az érvényesítés objektumok potenciálisan null. Abban az esetben mi NullPointerException Optional.ofNullable (Object) fog ugrani orElse egység, amely biztosítja számunkra a bizonyos alapértelmezett értéket. Ezen túlmenően, a beépített funkció felületen, mint bármely más, számunkra az új lehetőségek elérése Java 8, melyek közül az egyik rugalmas szűrési segítségével lambda kifejezéseket. Így, a szakterületen eljárások láncolás. megnéztük az objektumot null, szűrjük egy nem negatív egész szám, és az alapértelmezett érték adott abban az esetben nem adja át érvényesítése. Hasznos? Menjünk tovább.
Alternatívaként ciklusok Java 8 jött patakok. amely lehetővé teszi számunkra, hogy írjon kódot rugalmasabb. By the way, a fejlesztők is párhuzamos adatfolyamok (Azt hiszem, a név magáért beszél).
Példaként, a végrehajtás egy listát szöveges tételek gyűjteményéből webes elemek.
Semmi természetfeletti: a szokásos hurkot elemek overstoring Megszabadulni whitespace szöveget az új lista. Most lássuk, hogyan fog kinézni stream:
Mint látható, nincs köztes gyűjteményeket már nincs szükség. Fellebbezést a folyam () magában foglalja az azonos hurok révén. Térkép (lambda kifejezés) lehetővé teszi, hogy megtérít minden eleme a gyűjtemény célja az új egység. És gyűjtsük össze egy okos segédprogram osztály Gyűjtők visszatér egy új objektumok gyűjteménye zamaplennyh korábban. By the way, a kimeneti kapunk, amit szeretne, még a térkép. Kényelmes? Menjünk tovább.
Végül egy bonyolultabb példát, mind kötődnek az azonos forrásból. Egy friss téma, azt példaként a végrehajtására egyéni sablonok használatával bajusz. Valójában az információ vették, hogy kitöltse a belsőségek testng eredmények keretet, amely egyébként nem túl sok és triviális.
A formáció a kívánt jelentés terjedelme mentünk a lakosztályok, egyszerre gereblyézés eredmények, amelyek szintén kívánatos is sort az egyéni Comparators. Az egész dolog, akkor tartották a Suite / TestResult szervezetek további feldolgozásra. Úgy nézett ki, valahogy így:
scope.png 1074x682 45,6 KB
És ez csak egy kis része annak, amit általában szükséges egy gereblye jelentéseket. Most nézzük meg a Java 8 módosítás:
új% 2Bscope.png 1160x487 41,1 KB
Mint látható, megszabadultunk (stream) a közbülső gyűjtemények. Steytment (ha) váltották szűrők (filter). Összefoglalás szellem elő tározók (Collectors.toList ()), egy előzetes átalakítás a tárgyak (térkép (labmda)). Apotheosis megjelent egyéni Comparators, amelyek végrehajtása menet közben a válogatott + lambda. És ez csak egy része a vízfolyások lehetőségeket.