Java Wildcards?

4 Antworten

Was sind typische beispiele der Wildcards in Java

Kannst ja mal eine beliebige Seite dazu lesen, z.B. https://www.geeksforgeeks.org/wildcards-in-java/

Wäre zB das ein Wildcard
String a = hallo;
System.out.println(a);

Nein.

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)

String a = hallo;

-> Wäre erstmal ein Syntax Error, da die Anführungszeichen fehlen - ausser, hallo wäre eine andere (string) variable

Wildcards kenne ich eigentlich nur als * in Bezug auf regular expressions.

Wenn du z.b. im Dateiexplorer alle Dateien mit der Endung .txt suchen willst, dann kannst du nach *.txt suchen. Das * ist eine Wildcard und erlaubt als Ergebnis alle möglichen zeichenkombinationen, solange am Ende .txt dran steht.

In Java bezieht sich Wildcard hauptsächlich auf die Generics-Programmierung und hat nichts mit deinem Beispiel zu tun. Dein Beispiel ist eine einfache Zuweisung einer Zeichenkette zu einer Variablen und die Ausgabe dieser Variablen, was kein Wildcard-Konstrukt darstellt.

Wildcards werden hauptsächlich mit dem Platzhalter ? dargestellt um Möglichkeiten zur Typbeschränkung, Klassen, Schnittstellen und Methoden generischer zu gestalten.

public static void printList(List<?> list) {
 for (Object elem : list) { 
  System.out.println(elem); 
 } 
}

Hier kann die Methode printList eine Liste von beliebigen Typen akzeptieren (List<String>, List<Integer>, usw.), weil der Typ durch ? repräsentiert wird.

Woher ich das weiß:Berufserfahrung – Entwickler bei Mercedes-Benz

orochi02  24.10.2024, 17:50

wieso kann man da nich einfach object reinpacken, ist das nicht generisch genug?

SikerimAMK31  24.10.2024, 20:05
@orochi02

Kannst du auch, und wird in den meisten Fällen auch gehen. Ist aber hat halt ne andere Bedeutung, eben "List von Objects" statt "Liste mit vollkommen egal was drin". Ich persönlich finde Wildcards in solchen Fällen besser lesbar wenn es dem entspricht was damit ausgedrückt werden soll.

Wie schon geschrieben: Das ist weder eine Wildcard noch syntaktisch korrekter Java-Code