Typargumente in Java (Typargumente in Java), Lektion, Seite 722545
https://www.purl.org/stefan_ram/pub/typargumente_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Typargumente in Java

Klassen mit Typparameter

Bei einer Reihung kann der Typ der Komponenten näher bestimmt werden (beispielsweise: int[] oder double[]).

Auch bei Verwendung einer ArrayList kann dies nützlich sein.

Die ArrayList kann dafür mit einem Typargument  versehen werden. Der Compiler kann dann Typfehler erkennen.

Die Bedeutung eines Typarguments einer Klasse hängt von der Klasse ab und findet sich immer in der Dokumentation der jeweiligen Klasse.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.util.List< java.lang.Integer >list
= new java.util.ArrayList< java.lang.Integer >();
list.add( 2 );
list.add( 2.3 );
list.add( "alpha" );
list.add( list );
java.lang.System.out.println( list ); }}
transcript
Main.java:6: error: no suitable method found for add(double)
list.add( 2.3 );
^
method Collection.add(Integer) is not applicable
(argument mismatch; double cannot be converted to Integer)
method List.add(Integer) is not applicable
(argument mismatch; double cannot be converted to Integer)
Main.java:7: error: no suitable method found for add(String)
list.add( "alpha" );
^
method Collection.add(Integer) is not applicable
(argument mismatch; String cannot be converted to Integer)
method List.add(Integer) is not applicable
(argument mismatch; String cannot be converted to Integer)
Main.java:8: error: no suitable method found for add(List<Integer>)
list.add( list );
^
method Collection.add(Integer) is not applicable
(argument mismatch; List<Integer> cannot be converted to Integer)
method List.add(Integer) is not applicable
(argument mismatch; List<Integer> cannot be converted to Integer)
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
3 errors
Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.util.List< java.lang.Integer >list
= new java.util.ArrayList< java.lang.Integer >();
list.add( 2 );
list.add( 3 );
list.add( -2 );
list.add( 19 );
java.lang.System.out.println( list ); }}
transcript
[2, 3, -2, 19]

Allgemein können Referenztypen so deklariert werden, daß sie solche Typargumente akzeptieren. (Wie dies zu erfolgen hat, wird aber in dieser Lektion hier noch nicht behandelt.)

Da die Verwendung solcher Referenztypen ohne Typargumente zu Warnungen führen kann, wurde in der vorigen Lektion noch »SuppressWarnings« verwendet, das nun entfallen kann.

»<>« – Kurzschreibweise

An bestimmten Stellen kann »<>« verwendet werden, um den richtigen Typ (im folgenden Beispiel »java.lang.Integer«) vom Compiler aus dem Kontext ermitteln und dann einsetzen zu lassen

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ final java.util.List< java.lang.Integer >list
= new java.util.ArrayList<>();
list.add( 2 );
list.add( 3 );
list.add( -2 );
list.add( 19 );
java.lang.System.out.println( list ); }}
transcript
[2, 3, -2, 19]

Die Ziehung der Lottozahlen

Namen wie »shuffle«, »sort« und »subList« erklären das Verhalten und die Motivation besser als entsprechende Schleifen.

Main.java

public class Main
{ public static void main( final java.lang.String[] args )
{ java.util.List< java.lang.Integer >numbers = new java.util.ArrayList<>();

for( int i = 1; i <= 49; ++i )numbers.add( i );
java.util.Collections.shuffle( numbers );
java.util.Collections.sort( numbers = numbers.subList( 0, 6 ));
java.lang.System.out.println( numbers ); }}

Protokoll
[9, 14, 16, 23, 28, 32]
Protokoll
[4, 17, 22, 36, 37, 42]
Protokoll
[5, 10, 19, 29, 37, 48]

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 stefanram722545 stefan_ram:722545 Typargumente in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722545, slrprddef722545, 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/typargumente_java