Úgy él, hogy az új jdk 7 - első rész
Néhány nappal ezelőtt véget ért a konferencia Devoxx.com. ahol Mark Reinhold hivatalosan is bejelentette - lezárások (lezárások) vannak JDK 7. Sok áramkörök nagyon fontos újítás - egyrészt meg kell jelentősen bővíteni kifejező nyelv, és hogy bizonyos fokú funkcionális programozás Java. Itt, a másik pedig, hogy nehezíti a nyelvet -, és nem minden a fejlesztők képesek lesznek teljes mértékben kihasználni ezeket a lehetőségeket.
De az áramkör egy külön téma egy másik cikket, most már az ajánlat csak az eredeti cikket bezárások JDK 7 megpróbálok írni róla később.
Sok 7-novovedeny nyelven kerültek keretében megvalósuló projekt Coin (a fordítása a cikk új nyelvi funkciók Java 7):
Kiterjesztett támogatás gyűjtemények a nyelvet:
A Java, az új szintaxist kell végrehajtani, hogy hozzon létre gyűjtemények (Ruby stílus). Most ahelyett, hogy:
List list = new ArrayList ();
list.add ( "termék");
Karakterlánc elem = list.get (0);
Szett szett = new Hash-halmaz ();
set.add ( "termék");
Map térkép = new HashMap ();
map.put ( "kulcs", 1);
int value = map.get ( "kulcs");
írhat
List list = [ "tétel"];
Karakterlánc elem = lista [0];
Ebben az esetben az adatgyűjtés lesz megváltoztathatatlan (megváltoztathatatlan).
Automatikus Resource Management
Egyes források jönnek létre, hogy a folyamat az alkalmazás kell zárni kifejezetten - általában olyan módszerrel close (). A Java 7 fogják terjeszteni alkalmassága try blokkban, így a jogot, hogy a try blokkban a szükséges forrásokat a befejezése a blokk lesz zárva korektno (a close () hívás).
Egy értelmes kérdés lenne -, és hogy a futási fogja meghatározni a szükséges erőforrások és explicit támogatásával a lezárás? A válasz egyszerű - az új felület zárható és megfelelő erőforrás osztályok jönnek létre (InputStream, írók, aljzatok, Sql klssy) bővül, hogy végre ezt a felületet. Ez a megvalósítás lesz visszafelé kompatibilis a régebbi verziók a Java.
Íme egy példa. Ki olvas egy fájlt a következőképpen:
BufferedReader br = új BufferedReader (új FileReader (path));
próbáld visszaút br.readLine ();
> Végül br.close ();
>
Java-7, a kód átírható, mint:
próbálja (BufferedReader br = új BufferedReader (új FileReader (path))) vissza br.readLine ();
>
Továbbfejlesztett számítási típusok létrehozásakor gyűjtemények
Úgy gondolom, hogy szinte az összes programozó szembe kell írni:
térkép
A legtöbb esetben meg kell másolni a gyűjtemény típusát értékeket. Ezt a problémát úgy oldották meg a Google-gyűjtemény könyvtárban. és most fog tartalmazni, és maga a nyelv.
Most lehet írni:
térkép
Ugyanakkor bemutatjuk az üzemeltető <> - gyémánt (ékszer), amely befogadja a típusú kapcsolat leírása.
Aláhúzza számokban
Az egyik haszontalan számomra újítások ezt a cikket:
int one_million = 1_000_000;
A hivatalos indok - növekvő olvashatóság nagy int és hosszú.
Használata húrok az üzemeltető kapcsoló
Eddig a pontig a switch kifejezés csak akkor használható számát (Number) és számlálására (enum). A Java 7 adhatunk a támogatási sorokat:
S karakterlánc =.
kapcsoló (k) esetében "quux":
processQuux (s);
// leesés
ügy "foo":
ügy "bar":
processFooOrBar (s);
break;
ügy „valami”:
processBaz (s);
// leesés
Részletek az innovációs megtalálható a javaslatban: Egyszerűsített Varargs metódushívás Idézek csak egy példa.
van most:
statikus
statikus lista
.
* // Figyelmeztetés: ** „használja ellenőrizetlenül, vagy a nem biztonságos működés” *
vissza asList (a, b, c);
>
A szándék:
* // Figyelmeztetés: ** „lehetővé teszi a biztonságos generikus tömb létrehozása” *
statikus
statikus lista
.
vissza asList (a, b, c);
>
Összesen: már leírtam csak egy kis része az új termékek, hogy elvárjuk, hogy a JDK 7 Természetesen a legfontosabb áramköri Novik lesz, de nekik a következő alkalommal. És most azt lehet mondani, hogy nagy valószínűséggel fogja használni a gyémánt üzemeltető, és valószínűleg az automatikus erőforrás-gazdálkodás. De line switch tűnik számomra gonosz, mert figyelmét, hogy a használat sztring literálok helyett enum.
Azt is szeretné megjegyezni, hogy ez csak az első hozzászólás ebben a sorozatban - biztos, hogy folytatni kell.