java van mindenhol

2010. aug. 23. 8:50 - írta akos.tajti

a project coin egyik eleme az ARM, azaz automatikus erőforrás kezelés. ez sokkal egyszerűbb dolog annál, mint amit a neve sugall. tömören arról van szó, hogy bizonyos objektumokra ezután nem kell kézzel meghívnunk a close() metódust. erre egy új nyelvi konstrukciót vezetnek be és az API is megújul kicsit.

vannak olyan erőforrások, amiket használat után mindenképp fel kell szabadítanunk, le kell zárnunk. ilyenek a különböző fájlleírók, socketek stb. ezt eddig körülményesen, egy finally blokkban tehettük meg. ezen segít az új szintaxis, ami így néz ki:

 

	try (resource) {
		// resource itt használható
	} catch (Exception ex) {
	} 

 

resource az automatikusan lezárandó erőforrás. ilyenből több is lehet, pontosvesszővel elválasztva sorolhatjuk föl őket. a zárójelek között álló összes erőforrás típusának implementálnia kell az AutoCloseable interfészt. ennek egy close() metódusa van throws Exception kitétellel.

az erőforrások lehetnek korábban létrehozott objektumok, de deklarálhatjuk őket a try zárójelei között is. egy itt deklarált változó hatásköre a deklarációtól kezdődik, tehát egy későbbi erőforrásnál már felhasználhatjuk. például

    try (DimmyDummy d = new DimmyDummy(); d.getDummy())

 

ha a getDummy() metódus egy AutoCloseable példányt ad vissza, akkor ezzel a kóddal minden rendben.

a működés nagyon egyszerű.: a blokk végén meghívódik a close() metódus. ha valamelyik erőforrás létrehozásakor kivétel dobódik, vagy a bezáráskor van probléma, akkor az egész blokk kivétellel fejeződik be. ezeket a catch ágakban el tudjuk kapni.

az egész fenti kód igazából így íródik át:

	try {
	  try (resource) {
		// resource itt használható
 	  }
	} catch (Exception ex) { }

a kivételek működését így a legegyszerűbb megérteni.

ha tesztelnétek ezt a funkciót, a szükséges binárisokat innen tölthetitek le, a részletes speckót (amit mindenképp érdemes elolvasni) itt találjátok.

Kategóriák

java , java7

Címkék

java , java7 , jdk7 , programnyelvi

 
 
0 (0)
Jelentkezz be a szavazáshoz!


Főoldalra ajánlom!

Bookmark and Share

Eddig 3 komment érkezett ()

Mondj valamit

A szövegben nem lehet HTML-t használni, a linkeket pedig automatikusan aláhúzzuk. Az email cím megadása kötelezõ, de az oldalon nem jelenik meg. Ha van freeblogos felhasználóneved, itt bejelentkezhetsz.






Az IP címedet megjegyezzük, de ezt csak a komment spam jellegének vizsgálatához használjuk fel.




Email

akos.tajti(a)gmail.com
gtalkon elérsz

Keresés

Networked

Legolvasottabbak