Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.
 
Inhaltsverzeichnis
Vorwort
1 Neues in Java 8 und Java 7
2 Fortgeschrittene String-Verarbeitung
3 Threads und nebenläufige Programmierung
4 Datenstrukturen und Algorithmen
5 Raum und Zeit
6 Dateien, Verzeichnisse und Dateizugriffe
7 Datenströme
8 Die eXtensible Markup Language (XML)
9 Dateiformate
10 Grafische Oberflächen mit Swing
11 Grafikprogrammierung
12 JavaFX
13 Netzwerkprogrammierung
14 Verteilte Programmierung mit RMI
15 RESTful und SOAP-Web-Services
16 Technologien für die Infrastruktur
17 Typen, Reflection und Annotationen
18 Dynamische Übersetzung und Skriptsprachen
19 Logging und Monitoring
20 Sicherheitskonzepte
21 Datenbankmanagement mit JDBC
22 Java Native Interface (JNI)
23 Dienstprogramme für die Java-Umgebung
Stichwortverzeichnis

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Java SE 8 Standard-Bibliothek von Christian Ullenboom
Das Handbuch für Java-Entwickler
Buch: Java SE 8 Standard-Bibliothek

Java SE 8 Standard-Bibliothek
Pfeil 1 Neues in Java 8 und Java 7
Pfeil 1.1 Sprachänderungen in Java 8
Pfeil 1.1.1 Statische ausprogrammierte Methoden in Schnittstellen
Pfeil 1.1.2 Default-Methoden
Pfeil 1.1.3 Erweiterte Schnittstellen deklarieren und nutzen
Pfeil 1.1.4 Erweiterte Schnittstellen, Mehrfachvererbung und Mehrdeutigkeiten *
Pfeil 1.1.5 Bausteine bilden mit Default-Methoden *
Pfeil 1.2 Lambda-Ausdrücke und funktionale Programmierung
Pfeil 1.2.1 Code = Daten
Pfeil 1.2.2 Funktionale Schnittstellen und Lambda-Ausdrücke im Detail
Pfeil 1.2.3 Methoden-Referenz
Pfeil 1.2.4 Konstruktor-Referenz
Pfeil 1.2.5 Implementierung von Lambda-Ausdrücken
Pfeil 1.2.6 Funktionale Programmierung mit Java
Pfeil 1.2.7 Funktionale Schnittstelle aus dem java.util.function-Paket
Pfeil 1.2.8 Optional ist keine Nullnummer
Pfeil 1.2.9 Was ist jetzt so funktional?
Pfeil 1.2.10 Zum Weiterlesen
Pfeil 1.3 Bibliotheksänderungen in Java 8
Pfeil 1.4 JDK 8-HotSpot-JVM-Änderungen
Pfeil 1.5 Auf Java 7/8-Syntax mit NetBeans und Eclipse migrieren
Pfeil 1.5.1 Java 8-Syntax-Migration mit NetBeans
Pfeil 1.5.2 Java 8-Syntax-Migration mit Eclipse
Pfeil 1.5.3 File-Klassen auf NIO.2 umstellen
Pfeil 1.6 Zum Weiterlesen
 
Zum Seitenanfang

1.5Auf Java 7/8-Syntax mit NetBeans und Eclipse migrieren Zur vorigen ÜberschriftZur nächsten Überschrift

Wer eine große Codebasis auf Java 8 oder Java 7 migrieren möchte, steht vor dem Problem, wie das ohne großen manuellen Aufwand funktionieren kann. Als Erstes steht die Umsetzung auf die neuen Syntax-Möglichkeiten an. Das ist ein echter Mehrwert, und hier können moderne Entwicklungsumgebungen einiges als Vorarbeit leisten. Bei den Bibliotheken gibt es keine automatische Umsetzung von Alt nach Neu, hier ist leider Handarbeit angesagt.

Schauen wir uns an, welche Möglichkeiten die modernen IDEs bieten.

 
Zum Seitenanfang

1.5.1Java 8-Syntax-Migration mit NetBeans Zur vorigen ÜberschriftZur nächsten Überschrift

Die aktuelle NetBeans-IDE bringt einen Code-Transformator mit, der elegant die Codebasis durchsucht und Transformationen automatisch durchführt. Das Menü Refactor bietet den Unterpunkt Inspect and Transform…, der zu einem Dialog führt:

Transformationen in Java 8/Java 7 anstoßen

Abbildung 1.2Transformationen in Java 8/Java 7 anstoßen

Unter Manage… öffnet sich ein weiterer Dialog, bei dem JDK Migration Support aktiviert ist und einige Änderungen voreingestellt sind; neu für Java 8 ist Convert to Lambda or Method References. Auch die Transformationen in die neue Java 7-Syntax sind voreingestellt, aktiviert werden kann: Can use Diamond, Convert to try-with-resources, Join catch sections using mulitcatch, Use specific catch und Use switch over Strings when possible.

Einstellungsmöglichkeiten

Abbildung 1.3Einstellungsmöglichkeiten

Wer Programmcode neu mit NetBeans schreibt, wird gleich auf die neue Syntax hingewiesen. Vervollständigungen nutzen ganz natürlich zum Beispiel den Diamond-Operator.

 
Zum Seitenanfang

1.5.2Java 8-Syntax-Migration mit Eclipse Zur vorigen ÜberschriftZur nächsten Überschrift

Seit der Version Eclipse 4.4 (bzw. Eclipse 4.3.2 mit Feature Pack für Java 8-Erweiterung) integriert die IDE einen Code-Transformator, der Klassenimplementierung von funktionalen Schnittstellen in Lambda-Ausdrücke verkürzen kann. Diese Transformationen sind über die Quick-Fixes/Quick-Assists möglich.

Konvertierung in Lambda-Ausdruck

Abbildung 1.4Konvertierung in Lambda-Ausdruck

Leider kann diese Umsetzung (bisher) nicht für ein ganzes Projekt erfolgen und keine umfangreiche Codebasis komplett und automatisch auf die neuen Lambda-Ausdrücke gebracht werden.

 
Zum Seitenanfang

1.5.3File-Klassen auf NIO.2 umstellen Zur vorigen ÜberschriftZur nächsten Überschrift

Um sich von der Klasse java.io.File zu lösen und in Richtung Path zu migrieren, ist Handarbeit angesagt. Zunächst gilt es, alle Stellen zu finden, die im Workspace oder Projekt die Klasse File referenzieren. Am einfachsten ist es, eine Anweisung wie File f; in den Code zu setzen, dann zum Beispiel in Eclipse (Strg) + (ª) + (G) zu aktivieren. Es folgt eine Liste aller Vorkommen. Diese Liste muss nun abgearbeitet werden und der Code auf NIO.2 konvertiert werden. Nicht immer ist es so einfach

Scanner s = new Scanner( new File(dateiname) );

in

Scanner s = new Scanner( Paths.get(dateiname) );

umzusetzen oder

new File( dateiname ).delete();

in

Files.delete( Paths.get( dateiname ) );

Eine andere Stelle, an der Konvertierungen möglich sind, betreffen FileReader und FileWriter. Diese Klassen sind gefährlich, weil sie standardmäßig die im System voreingestellte Kodierung verwenden. Eine Kodierung (wie UTF-8) im Konstruktor explizit vorzugeben ist jedoch nicht möglich. NIO.2 bietet eine bessere Methode, um an einen Reader/Writer aus einer Datei zu kommen, wobei in Java 8 Entwickler auch nicht gezwungen werden, diese Kodierung immer sichtbar anzugeben, denn das ist optional, ohne Angabe ist UTF-8 voreingestellt.

Deklaration

Klassisch

Mit NIO.2

Reader r =

new FileReader(f);

Files.newBufferedReader(Paths.get(f),
StandardCharsets.ISO_8859_1);

Writer w =

new FileWriter(f);

Files.newBufferedWriter(Paths.get(f),
StandardCharsets.ISO_8859_1);

Tabelle 1.15Beziehen eines Dateistroms klassisch und mit NIO.2

Der Quellcode wird erst einmal länger, doch der Gewinn ist, dass die Kodierung nicht verschwindet und auch die Ein-/Ausgabe gleich gepuffert ist. Freunde der statischen Import-Anweisung komprimieren weiterhin zu Anweisungen wie:

Reader r = newBufferedReader( get( f ), ISO_8859_1 );

Es ist auf jeden Fall manuelle Arbeit angesagt. Eigene Blöcke, etwa zum Schreiben in Dateien, können komplett zusammengestrichen werden auf einfache Methodenaufrufe wie:

Files.write( Paths.get( f ), bytes );
byte[] bytes = Files.readAllBytes( Paths.get( f ) );
Files.write( Paths.get( f ), Collections.singleton( "Zeile 1" ),
StandardCharsets.ISO_8859_1 );
List<String> lines = Files.readAllLines( Paths.get( f ),
StandardCharsets.ISO_8859_1 );

 


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Java SE 8 Standard-Bibliothek Java SE 8 Standard-Bibliothek
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: Java ist auch eine Insel
Java ist auch eine Insel


Zum Rheinwerk-Shop: Professionell entwickeln mit Java EE 8
Professionell entwickeln mit Java EE 8


Zum Rheinwerk-Shop: Besser coden
Besser coden


Zum Rheinwerk-Shop: Entwurfsmuster
Entwurfsmuster


Zum Rheinwerk-Shop: IT-Projektmanagement
IT-Projektmanagement


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2018
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern