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   www.steria.no 16.07.20141 Den perfekte julegaven til Javakoden din Johannes Brodwall Steria

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

3   www.steria.no 16.07.20143 This came as a surprise to everyone, but what was announced?

4   www.steria.no 16.07.20144 Hvorfor closures? Bygg bedre bibliotek.

5   www.steria.no 16.07.20145 Eksempel: Lese alle linjer i fil

6   www.steria.no 16.07.20146 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   www.steria.no 16.07.20147 Er dette rettferdig?

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

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

10   www.steria.no 16.07.201410 Å bygge en funksjon som tar closures

11   www.steria.no 16.07.201411 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   www.steria.no 16.07.201412 Hva er greia med disse #’ene?

13   www.steria.no 16.07.201413 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   www.steria.no 16.07.201414 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   www.steria.no 16.07.201415 OriginClass#bar Person#setSalary(int) #(String line) { System.out.println("This is a line:" + line); }

16   www.steria.no 16.07.201416 Fem ting du bør bruke closures til

17   www.steria.no 16.07.201417 Hva gjør vi for å komme rundt et dårlig språk

18   www.steria.no 16.07.201418 Funksjoner som frigir ressurser Interne iteratorer Asynkrone kall Callbacks Queries

19   www.steria.no 16.07.201419 Closures lar oss bygge bedre bibliotek.

20   www.steria.no 16.07.201420 Her kan du lære mer: http://www.jroller.com/scolebourne/entry/closures_in_jdk_7 http://docs.google.com/View?docid=ddhp95vd_0f7mcns http://kijaro.dev.java.net/ (Implementasjon) http://kijaro.dev.java.net/ http://svn.brodwall.com/presentations/public/2009-12-05-closures-javabin http://johannesbrodwall.com/2008/03/05/quality-code-starts-with-the-details-of- the-language/ http://johannesbrodwall.com/2008/03/05/quality-code-starts-with-the-details-of- the-language/

21   www.steria.no Johannes Brodwall Chief Scientist Steria, Norway johannes.brodwall@steria.no http://johannesbrodwall.com Twitter: @jhannes Takk for oppmerksomheten  www.steria.no


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

Liknende presentasjoner


Annonser fra Google