OZ 2012/2

M T 93 ORGANIZACIJA ZNANJA 2012, LETN. 17, ZV. 2 Metoda "varargs warnings" Pri klicanju metod "varargs" je prevajalnik generiral opozorila "unsafe". V Javi 7 je generiranje teh opozoril prestavljeno iz klicajoče kode v deklaracijo klicane metode. Dodan je bil nov anotacijski tip: SafeVarargs, ki blokira opozorila "unsafe". Vse metode iz Java 7 sedaj več ne generirajo teh opozoril. To je do sedaj generiralo opozorila: //[unchecked] unchecked generic array creation for varargs parameter of type List<String>[] List<List<String>> numbersInThreeLanguages = Arrays. asList(Arrays.asList("Un", "Deux", "Trois"), Arrays.asList("Uno", "Dos", "Tres"), Arrays.asList("One", "Two", "Three")); Če nismo hoteli imeti opozoril, smo morali dodati: @SuppressWarnings(value = "unchecked") Po novem se doda anotacijski tip v klicajočo metodo: @SafeVarargs public static <T> List<T> asList(T... a) {   return new ArrayList<T>(a); } Inicializacija kolekcij Enostavna inicializacija kolekcij je bila prvotno mišljena za Javo 7, vendar je bila prestavljena v verzijo 8. List<List<String>> monthsInTwoLanguages = Arrays.asList(Arrays.asList("January", "February"), Arrays.asList("Gennaio", "Febbraio")); List<List<String>> monthsInTwoLanguages = {{"January", "February"}, {"Gennaio", "Febbraio"}}; Java NIO Java NIO je nov datotečni programski vmesnik, ki je nastal kot odgovor na pomanjkljivosti obstoječega vmesnika. Pomanjkljivosti obstoječega programskega vmesnika Java NIO: • nekonsistentnost med različnimi operacijskimi okolji, • pomanjkanje uporabnih izjem, ko pride do napak pri datotečnih operacijah, • pomanjkanje podpore za osnovne operacije (npr. kopiranje in premikanje datotek), • omejena podpora za simbolične povezave, • zelo omejena podpora za datotečne atribute, • ni funkcij, ki jih mnogo aplikacij potrebuje, • ni možno vključiti drugih datotečnih sistemov. Path Osnovni razred v novem paketu je postal java.nio. file.Path, ki je nadomestil stari java.io.File. Razred je namenjen lociranju datoteke v datotečnem sistemu. • Poti so lahko relativne ali pa absolutne. • Ustvarimo jih lahko iz niza, URI-ja ali metode File. toPath(). • Pot sestoji iz enega ali več poimenovanih elementov, ali pa korenske komponente ter nič ali več poimenovanih elementov. • Pot je nespremenljiva (angl. immutable ). • Definirane so metode za dostop do elementov poti. • Definirane so metode za združevanje poti. Kreiranje poti: • Path path = FileSystems.getDefault(). getPath("C:\\myFile"); • Path path = Paths.get("C:\\myFile"); • URI u = URI.create("file:///myFile"); Path path = Paths.get(u); • File f = new File("C:\\myFile"); Path path = f.toPath(); Dostop do komponent poti: // C:\home\joe\foo Path name = path.getFileName(); // foo Path parent = path.getParent(); //\home\joe Path subpath = path.subPath(0, 2);//home\joe Files Razred definira statične metode za delo z datotekami, mapami ter simbolnimi povezavami. Večina metod vzame "Path" kot vhodni parameter. Če pride do napak pri izvajanju metod, le te vračajo uporabne vhodno-izhodne izjeme. Operacije: Path path = … • Files.copy(source, target); • Files.copy(source, target, REPLACE_ EXISTING); POROČILO

RkJQdWJsaXNoZXIy MTAxMzI5