P. 1
Novosti u Javi 7 - Projekat Coin i proširenje NIO paketa

Novosti u Javi 7 - Projekat Coin i proširenje NIO paketa

|Views: 44|Likes:
Published by JavaSvet
Predstavljanje projekta Coin i njegovih dijamanata, string switch-a, multi catch-a i try with resourcess-a.
Predstavljanje projekta Coin i njegovih dijamanata, string switch-a, multi catch-a i try with resourcess-a.

More info:

Categories:Types, Reviews
Published by: JavaSvet on Jul 28, 2011
Copyright:Attribution Non-commercial Share Alike

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

01/13/2012

pdf

JavaSvet

Novosti u Javi 7
Project COIN, Novi I/O

http://javasvet.rs

info@javasvet.rs

JavaSvet
Project COIN
● ●

Sitne izmene koje život lepšim 5 novina:
● ● ● ● ●

<> dijamant Čitljivija notacija velikih brojeva Switchu stringu Multi-catch Try-with-resources

http://javasvet.rs

info@javasvet.rs

JavaSvet
<>

Pre generika List list = new ArrayList() Sa genericima List<List<String>> list = new ArrayList<List<String>>() Dijamantska verzija List<List<String>> list = new ArrayList<>()
http://javasvet.rs info@javasvet.rs

JavaSvet
<>

Preterani primer Map<Map<String, List<String>, List<List<String>>> mapOfMaps = new HashMap<>();

http://javasvet.rs

info@javasvet.rs

JavaSvet Čitljivija notacija velikih brojeva
long ssn = 456_78_9999L; byte nybbles = 0b0010_0101; long hexWords = 0xCAFE_BABE; float pi = 3.14_15F;

“Binary integral literals and underscores in numeric literals”

http://javasvet.rs

info@javasvet.rs

JavaSvet
String u switch-u
final String day = "weekend"; switch (day) { case "workday": System.out.println("buuu!"); break; case "weekend" System.out.println("jeej!"); break; default: break; }
http://javasvet.rs info@javasvet.rs

JavaSvet
Multi-catch

Pre je bilo ovako
} catch (FirstException ex) { logger.error(ex); throw ex; } catch (SecondException ex) { logger.error(ex); throw ex; }
http://javasvet.rs info@javasvet.rs

JavaSvet
Multi-catch

U Javi 7 moguće je uraditi jednostavnije
} catch (FirstException | SecondException ex) { logger.error(ex); throw ex; }

http://javasvet.rs

info@javasvet.rs

JavaSvet
Multi-catch

Novi exception ReflectiveOperationException Superklasa za sve exceptione vezane za refleksiju

http://javasvet.rs

info@javasvet.rs

JavaSvet
Try-with-resources

Automatsko zatvaranje resursa
try (FileOutputStream fos = new FileOutputStream(file); InputStream is = url.openStream()) { byte[] buf = new byte[2048]; int len; while ((len = is.read(buf)) < 0) { fos.write(buf, 0, len); } } catch (Exception e) { e.printStackTrace(); }

Novi interfejs java.lang.AutoCloseable
http://javasvet.rs info@javasvet.rs

JavaSvet
New I/O – zašto?

Dosta metoda nije bacalo exception (delete, mkdir vraćaju bool umesto exceptiona) Trenutno API nije konzistentant na svim platformama Nedostatak osnovnih operacija (copy, move...) Nema notifikacija kada je fajl promenjen
http://javasvet.rs info@javasvet.rs

JavaSvet
Novi I/O API

java.nio.file paket
● ●

Path – putanja fajla na fajl sistemu Files – statičke metode za rad za fajlovima/folderima FileSystem – pristup fajl sistemu, factory za objekte za pristup fajl sistemu

http://javasvet.rs

info@javasvet.rs

JavaSvet
Novi I/O API

java.nio.file

DirectoryStream iterator, AutoClosable :) – Filtriranje, regex FileVisitor

Obilazak putanje walkFileTree(Path, FileVisitor)

WatchService – osluškivanje promena na fajl sistemu

http://javasvet.rs

info@javasvet.rs

JavaSvet
Novi I/O API

File Attributes

Pristup bazičnim atributima (ime, veličina, timestampovi) Pristup atributima specifični za određene platforme

Podrška za symbolic links

http://javasvet.rs

info@javasvet.rs

JavaSvet
Novi I/O API

Primeri

Files.copy(InputStream source, Path target, CopyOptions REPLACE_EXISTING); try { Files.delete(path); } catch (NoSuchFileException x) { // No such file } catch (DirectoryNotEmptyException x) { // Folder not empty } catch (IOException x) { // Something else, permissions maybe? }
http://javasvet.rs info@javasvet.rs

JavaSvet
Pitanja?

http://javasvet.rs

info@javasvet.rs

JavaSvet

Hvala na pažnji
Vuk Nikolić
@vuknikolic vuk.nikolic@javasvet.rs

http://javasvet.rs

info@javasvet.rs

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->