Wichtige Information zu Stringbuffer je nach Java-Version

schnuffie

Erfahrenes Mitglied
Mit dem Versionswechsel von Java 1.3.x auf Java 1.4.0 wurde die Klasse StringBuffer von SUN erweitert.

In einem meiner Projekte, die auf dem Server unter Java 1.3.1 laufen, wurde so eine Zeile verwendet:
Code:
stringbuffer1.append(stringbuffer2);

Das ist kein Problem, wenn man mit Java 1.3.x kompiliert.
Wenn allerdings in Eclipse mit Java 1.4.x kompiliert wird und Code für die 1.3.1 erzeugt wird (in Eclipse einstellbar), da 1.3.1er Code für die Auslieferung benötigt wird, rafft das Eclipse 2.1 nicht, auch nur Methoden zu benutzen, die 1.3.1 kennt. :mad:

Seit der Java-Version 1.4.0 gibt es zusätzlich zu den append(Object) und append(String) eine Methode append(StringBuffer).

Für das Kompilieren mit 1.4.x wird also die append(StringBuffer)-Methode statt append(Object) benutzt und als Resultat bekommt man einen NoSuchMethodError beim Ausführen. (!)

Das Problem ist in zwei Varianten lösbar:
Code:
stringbuffer1.append((Object)stringbuffer2); //Variante 1
stringbuffer1.append(stringbuffer2.toString()); //Variante 2

CU schnuffie ;-)
 
Zurück