Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

  www.steria.no 16.07.20141 Den perfekte julegaven til Javakoden din Johannes Brodwall Steria.

Liknende presentasjoner


Presentasjon om: "  www.steria.no 16.07.20141 Den perfekte julegaven til Javakoden din Johannes Brodwall Steria."— Utskrift av presentasjonen:

1   Den perfekte julegaven til Javakoden din Johannes Brodwall Steria

2   Wednesday, November 18th, Mark Reinhold from Sun announced that it was time for closures in Java.

3   This came as a surprise to everyone, but what was announced?

4   Hvorfor closures? Bygg bedre bibliotek.

5   Eksempel: Lese alle linjer i fil

6   void theOldWay(String[] args) throws IOException { BufferedReader reader = null; boolean done = false; try { FileReader filerdr = new FileReader(new File(args[0])) reader = new BufferedReader(fdr); String line; while ( (line = reader.readLine()) != null) { System.out.println("This is a line:" + line); } done = true; } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { if (done) throw e; } } }

7   Er dette rettferdig?

8   void theNewWay(String fname) throws IOException { forEachLine( new File( fname), #(String line) { System.out.println("This is a line:" + line); }); }

9   void theNewWay(String[] args) throws IOException { forEachLine( new File( args[0]), #(String line) { System.out.println("This is a line:"+line); }); }

10   Å bygge en funksjon som tar closures

11   public interface LineCallback { public void doForLine(String line) throws IOException; } public static void forEachLine(File file, final LineCallback lineCallback) throws IOException { doWithFile(file, #(Reader reader) { // … lineCallback.doForLine(line); } }); }

12   Hva er greia med disse #’ene?

13   OriginClass origin = new OriginClass(); origin.setBar("bar on origin"); TargetClass target = new TargetClass(); mapField( origin, OriginClass#bar, target, TargetClass#foo); System.out.println(target.getFoo());

14   OriginClass origin = new OriginClass(); origin.setBar("bar on origin"); TargetClass target = new TargetClass(); mapField( origin, OriginClass#bar, target, TargetClass#foo); System.out.println(target.getFoo());

15   OriginClass#bar Person#setSalary(int) #(String line) { System.out.println("This is a line:" + line); }

16   Fem ting du bør bruke closures til

17   Hva gjør vi for å komme rundt et dårlig språk

18   Funksjoner som frigir ressurser Interne iteratorer Asynkrone kall Callbacks Queries

19   Closures lar oss bygge bedre bibliotek.

20   Her kan du lære mer: (Implementasjon) the-language/ the-language/

21   Johannes Brodwall Chief Scientist Steria, Norway Takk for oppmerksomheten 


Laste ned ppt "  www.steria.no 16.07.20141 Den perfekte julegaven til Javakoden din Johannes Brodwall Steria."

Liknende presentasjoner


Annonser fra Google