Beispiel java.util.Formatter:
Für die formatierte Erzeugung von Zeichenfolgen haben wir früher bereits
die Instanzmethoden printf(String, Object...)
der Klasse
java.io.PrintStream
(Typ der Klassenvariablen System.out
)
und format(String, Object...)
der Klasse String
kennengelernt.
Beide Methoden sind mit Hilfe der Klasse java.util.Formatter
und
deren Instanzmethode format(String, Object...)
implementiert.
Formatter
ist ein schönes Beispiel für sogenannte Lego-Software,
denn Formatter
ist dank der Verwendung von Object
- und
Interface-Referenzen sehr flexible mit Objekten verschiedener Klassen kombinierbar:
Object
beliebige Objekte verwendet werden.Formatter
-Konstruktor jedes Objekt
übergeben werden, das über das Interface java.util.Appendable
benutzbar ist.
Das als Ziel verwendete Interface Appendable
hat wiederum flexibel
verwendbare Methoden dank Parametertyp CharSequence
.
Zwei Implementierungsklassen von Appendable
kennen wir schon:
es sind StringBuilder
und java.io.PrintStream
,
der Typ von System.out
.
Im oben erwähnten String.format
wird ein Formatter
-Objekt
mit StringBuilder
-Objekt als Ziel erzeugt,
in PrintStream.printf
eines mit dem PrintStream
-Objekt als Ziel.
Schauen Sie sich die genannten Methoden, Klassen und Interfaces in der API-Dokumentation an: