Hab nichts darüber gefunden,
was soll das den sein???
Oder besser gefragt wozu dienen <>????
wozu dienen <>????
Meinst Du z.B. sowas:
Collection<String> c;
Das sind Generics. Damit deklarierst Du z.B., dass c eine Collection ist, in die nur Strings dürfen.
Mit den Stichwörtern "Generics Java" sollte Google Dir viele Informationen und Tutorials ausspucken.
LEIFer
ganz einfache benutzung:
boolsche vergleichsoperatoren:
x>y -> x grösser y
x<y -> x kleiner y
boolsche vergleichsoperatoren
Nee, da sind sicher Generics gemeint ;)
pixartist, schau dir mal die neuen SE1-übungen an, da kommt sowas wie
<String> vor, es ist also stark davon auszugehen, dass sowas mit der frage gemeint war^^
Ok, hatte mich nichtklar genug ausgedrückt!
Also ich meinte die Generics, denn es geht um die SE Übungen, will mich schon auf morgen vorbereiten!
Vielen Dank für die Antworten, habs aber immer noch nicht ganz gecheckt!
Also so wie ich das verstanden habe spare ich mir die Deklaration mit private string ……
wenn das mehrere sind und brauche sie dann nur in den <> am Kopf der Methode schreiben oder??
Nein,
wenn du normalerweise eine Collection hast, dann kannst du da Objekte jeden Typs hineinpacken. Wenn du aber eine Collection<String> hast, dann kannst du da nur Strings reinpacken.
ist eigentlich zur vorbereitung egal, steht extra in der aufgabe dass man das nicht verstehen muss:)
als Erklärung:
// Hier können NUR Strings eingefügt werden
List lstStrings = new ArrayList<String>();
// Hier kann ALLES hinzugefügt werden
List lstObjects = new ArrayList();
lstStrings.put("Hallo"); // <-- geht
lstStrings.put(new Double(2.6)); // <-- geht NICHT
lstObjects.put("Welt"); // <-- geht
lstObjects.put(new Double(2.6)); // <-- geht
String myString = lstStrings.get(0); // geht
myString = lstObjects.get(0); // geht NICHT, gibt ne ClassCastException
myString = lstObjects (String)lstObjects.get(0); // geht
/*
dabei wird aus dem Object in der ArrayList lstObjects ein String Object "gemacht"
Dieses "machen" nennt man Casten, das ist am Anfang ein wenig schwer zu verstehen da Vererbung erst in SE2 glaube dran kommt.
--> einfach mal nach "java cast" googlen
*/
der Vorteil is schlicht besser lesbarer code und man spart sich die ganze "casterei" um aus den Objects wieder den eigentlichen Datentyp zu bekommen.
das ganze geht erst seit java 1.5 und läuft unter dem Topic "Generics"
PS: und der compiler meckert wenn man was anderes als Strings zu der liste hinzufügen will :) ist also auch ganz praktisch
[nitpick]
Die Methode an java.util.List heißt nicht put() sondern add()
String myString = lstObjects.get(0);
gibt keine ClassCastException sondern schon beim Compilieren einen Type mismatch.
Die Zeile myString = lstObjects (String) lstObjects.get(0); // geht
ist falsch. Das erste "lstObjects" muss weg.
Casten als "umwandeln" zu bezeichnen, finde ich doch etwas zu unglücklich. Noch immer nicht ganz korrekt aber bereits besser: Beim Casten wird das Objekt als ein String interpretiert. Falls zur Laufzeit das Objekt aber doch kein String ist, wird eine ClassCastException geworfen.
[/nitpick]
LEIFer
Hmmm. Es scheint hier noch immer Probleme mit der Code-Umgebung zu geben. Eigentlich sollte zwischen "mismatch." und "Die Zeile" ein Absatz sein, der aber in der Vorschau nicht erscheint.