Konstruierte Typen in Java (Konstruierte Typen in Java), Lektion, Seite 723845
https://www.purl.org/stefan_ram/pub/konstruierte_typen_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Konstruierte Typen in Java 

Ein Typname darf auch spitze Klammern (»<« und »>«, dieselben Zeichen wie für „Kleiner als“ und „Größer als“) enthalten.

Der Typname »java.lang.Comparable<java.lang.String>« enthält spitze Klammern »<« und »>«.

Die spitzen Klammern erlauben es den Typnamen in einen Teil »java.lang.Comparable« vor  den Klammern und in einen Teil »java.lang.String« in  den Klammern zu zerlegen.

Den Teil vor den Klammern nennen wir einen generischen Typ, den Teil in den Klammern ein Typargument, den gesamten Typnamen nennen wir einen konstruierten Typ.

Ein konstruierter Typ
java.lang.Comparable<java.lang.String>
^ ^
| |
generischer Typ Typargument

Beispielsweise besteht der konstruierte Typ »java.lang.Comparable<java.lang.String>« aus dem generischen Typ »java.lang.Comparable« und dem Typargument »java.lang.String«.

Anmerkung * Die offizielle Bezeichnung eines konstruierten Typs ist „parametrisierter Typ“ (JLS10: 4.5 Parameterized Types ). Da wir diesen Sprachgebrauch für falsch halten, weil ein konstruierter Typ gerade keine  Parameter mehr (wie ein generischer Typ, welcher Parameter hat), übernehmen wir ihn hier nicht. Die Bezeichnung „konstruierter Typ“ stammt von C#, wird aber teilweise auch für C++  verwendet. Siehe auch: Websuche: ["Terminologie für Generics"] (Stand 2018).

Die Dokumentation konstruierter Typen

Es gibt keine spezielle Dokumentation eines konstruierten Typs, aber eine Dokumentation generischer Typen.

In der Dokumentation eines generischen Typs findet man in den spitzen Klammern hinter dem Namen des generischen Typs einen Bezeichner, welcher Typparameter  genannt wird.

Die Dokumentation eines konstruierten Typs findet man unter seinem generischen Typ, indem man für den dort vorkommenden Typparameter das Typargument des konstruierten Typs einsetzt.

Um beispielsweise die Dokumentation des konstruierten Typs »java.lang.Comparable<java.lang.String>« zu finden, können wir die Dokumentation des zugehörigen generischen Typs »java.lang.Comparable« lesen und dort für den Typparameter »T« das Typargument »java.lang.String« einsetzen.

Einsetzen eines Typarguments in einen generischen Typ mit Typparameter
java.lang.Comparable<T>
^
|
java.lang.String

In der Dokumentation des generischen Typs »java.lang.Comparable« finden wir beispielsweise eine Proklamation für den Methodennamen »compareTo«.

»compareTo« von »java.lang.Comparable<T>«
int CompareTo( T o )

Daraus können wir nun die entsprechende Proklamation für den konstruierten Typ »java.lang.Comparable<java.lang.String>« erhalten, indem wir den Typparameter »T« durch das Typargument »java.lang.String« ersetzen.

»compareTo« von »java.lang.Comparable<java.lang.String>«
»int CompareTo( T o )« mit »java.lang.String« für »T« ergibt:
int CompareTo( java.lang.String o )

Entsprechend erhalten wir auch weitere Proklamationen für andere konstruierte Typen.

»compareTo« von »java.lang.Comparable<java.lang.Integer>«
int CompareTo( java.lang.Integer o )
»compareTo« von »java.lang.Comparable<java.lang.Object>«
int CompareTo( java.lang.Object o )
u. s. w.

Zu einem  generischen Typ, wie »java.lang.Comparable«, kann es viele verschiedene  konstruierte Typen, wie »java.lang.Comparable<java.lang.String>«, »java.lang.Comparable<java.lang.Integer>«, »java.lang.Comparable<java.lang.Object>« und so weiter geben. Es spart dann Platz, wenn nicht für jeden konstruierten Typ eine eigene Dokumentationsseite angelegt wird, sondern nur eine einzige Dokumentationsseite für den generischen Typ, aus der die Dokumentation der konstruierten Typen jeweils gewonnen werden kann.

Übungsfragen

?   Übungsfrage

Welchen Rückgabetyp hat die Methode mit dem Namen »cast« aus dem Typ »java.lang.Class<java.lang.String>«?

(Der Rückgabetyp einer Methode ist der Typ eines Aufrufs jener Methode.)

?   Übungsfrage

Welche Parametertypen hat die Methode mit dem Namen »set« aus dem Typ »java.util.ArrayList<java.lang.Integer>«?

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723845 stefan_ram:723845 Konstruierte Typen in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723845, slrprddef723845, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/konstruierte_typen_java