OZ 2012/2

92 ORGANIZACIJA ZNANJA 2012, LETN. 17, ZV. 2 Dodan pa je bil tudi vnos celih števil v binarni obliki. short aShort = (short)0b1010000101000101; int binary = 0b1011;   Stavek "switch" (strings in switch) V preklopnem stavku "switch" je v Javi 7 lahko, zraven tipov char, byte, short, int, character, byte, short ter integer, po novem tudi tip string. if (s.equals("foo")) switch (s) { doFoo(); case "foo" : doFoo(); break; else if (s.equals("bar")) case "bar" : doBar(); break; doBar(); case "baz" : doBaz(); break; else if (s.equals("baz")) default: doBaz(); throw new IllegalArgume ntException(s); else } throw new IllegalArgumentException(s); Stavek "multi-catch" ter "precise rethrow" Sedaj lahko lovimo več različnih napak v enem stavku. try { try { // … // … } catch (IOException x) { } catch (IOException | SQLException x) { logger.log(SEVERE, "Unexpected failure", x); logger.log(SEVERE, "Unexpected failure", x); throw x; throw x; } catch (SQLException x) { } logger.log(SEVERE, "Unexpected failure", x); throw x; } "Precise rethrow" nam omogoča, da nam ni treba loviti vsake napake posebej. void testMethod(Future future) throws InterruptException, ExecutionException, TimeoutException { try { Object result = future.get(5, SECONDS); } catch(Throwable t) { cleanup(); throw t; }} Funkcija "try-with-resources" Je variacija funkcije "try-catch-finaly", ki omogoča, da se po uporabi viri avtomatsko zaprejo. Omogoča nam inicializacijo spremenljivke vira, ki pa mora biti tipa "AutoCloseable". Spremenljivka se zapre v avtomatsko generiranem bloku "finaly". Ker se lahko napaka zgodi tudi pri avtomatskem zapiranju vira, je bila predstavljena nova vrsta napake "supressed exception". Tako se, če pride do več napak, ohrani prva napaka (glavna), vse druge iz avtomatsko generirane kode pa se ji dodajo kot "supressed exception". Diamond <> Inicializacija generičnih kolekcij je v starih verzijah Jave preveč zapletena. Map<String,Map<Integer,List<String>>> map = new HashMap<> (); ali Map<String,Map<Integer,List<String>>> foo () { return new HashMap<> (); } To se imenuje operator "diamond": <>, ki odstrani deklaracijo tipa iz inicializacije. POROČILO

RkJQdWJsaXNoZXIy MTAxMzI5