String ein primitiver Typ?
-
WIe ich grade meinem Javabuch entnehmen konnte, gibt es primitive und nicht primitive Typen, das ist vor allem bei der Übergabe an Methoden wichtig, das sie da dann entweder by value oder by reference übergeben werden.
Mein Problem ist, dass String ein primitiver Typ zu sein scheint, was habe ich jetzt für Möglichkeiten ihn als Referenz zu übergeben?
Meine einzige Lösung war ein String Array mit nur einem Element zu übergeben. Das klappt, ist aber äußerst hässlich! Habt ihr vielleicht eine andere Idee?
-
String ist KEIN primitiver Typ, sondern eine Klasse. Nur mit ein paar Besonderheiten:
- String ist die einzige Klasse, für die ein Operator (+) überladen wird (was bei selbstgemachten Klassen nicht geht)
- String ist immutable. D.h., rufst Du beispielsweise .append() auf, wird nicht der bestehende String verändert, sondern ein neuer String erzeugt.Da Strings also Objekte sind, werden sie als Referenzen übergeben. Wegen der "immutable"-Eigenschaft sieht es aber so aus, als würden sie by-Value übergeben. Will man den bestehenden String verändern können, nimmt man nicht String, sondern StringBuffer.
-
Danke das hat mir sehr weitergeholfen
Es funktioniert jetzt mit StringBuffer, statt dem hässlichen StringFeld. Bis ich allerdings ganz den Unterschied verstehe, muss ich noch ein paar Tests mit den beiden machen...