[Resolu] [Java] StringBuffer, pas moyen de faire append !

Bonsoir
Je me suis mis il y a peu de temps au java et la je bute sur les StringBuffer.

Je le déclare comme ceci

Et ensuite lorsque je veux faire un append

eclipse me met une alerte
The method append(String) is undefined for the type StringBuffer

Ce qui me parait étrange, c’est que j’ai d’autres méthodes disponibles comme toString qui, même si elles renvoient n’importe quoi vu que je ne peux pas remplir mon StringBuffer fonctionnent.

La version de java installée est la 1.6.0_01 (si ça aide).
Merci de votre aide, je galère B)

Vu que la méthode existe (j’ai vérifié):

  • t’as importé la bonne classe StringBuffer?
  • t’as foiré ton argument (celui que tu donnes a l’air bon)?
  • t’as cliqué sur le petit truc rouge à gauche de ta ligne pour qu’il te donne une solution?

Ca y est ça marche !
L’erreur est conne; j’avais appelé ma classe d’essai StringBuffer, du coup tout s’emmêlait B)

[code]public class essai_stringbuffer {
public static void main(String args) {
StringBuffer buff = new StringBuffer();
buff.append(« un »);
buff.append(« deux »);

	System.out.println(buff.toString());		
}	

}[/code]

Tu m’arrêtes si je me trompe mais vu qu’elle est dans java.lang, elle n’est pas importée par défaut ?

Effectivement, java.lang est importé par défaut en java.

Une autre solution, si tu tiens absolument à appeler ta classe StringBuffer (ce qui est tout à fait possible à partir du moment où elle n’est pas dans le package java.lang), c’est d’utiliser les « fully qualified names » (désolé pour le mode JCVD) :

java.lang.StringBuffer str = new java.lang.StringBuffer(); str.append("un truc");

Et là, ça devrait marcher.

Mais bon, je crois qu’on peut dire que StringBuffer n’est pas un choix très sage comme nom de classe de toutes façons :wink:

[quote=“eka808, post:3, topic: 45591”][code]public class essai_stringbuffer {
public static void main(String[] args) {
StringBuffer buff = new StringBuffer();
buff.append(“un”);
buff.append(“deux”);

	 System.out.println(buff.toString());		
 }	

}[/code][/quote]

Si tu viens de te mettre au java, autant tout de suite prendre les bonnes habitudes et respecter les normes d’écriture Java : Les noms de classes doivent commencer par une majuscule et ne contenir aucun “underscore”, ta classe essai_stringbuffer devrai s’appeler EssaiStringBuffer.

Tout les détails : http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
plus précisément : http://java.sun.com/docs/codeconv/html/Cod…s.doc8.html#367

[quote=« ZGoblin, post:5, topic: 45591 »]Si tu viens de te mettre au java, autant tout de suite prendre les bonnes habitudes et respecter les normes d’écriture Java : Les noms de classes doivent commencer par une majuscule et ne contenir aucun « underscore », ta classe essai_stringbuffer devrai s’appeler EssaiStringBuffer.

Tout les détails : http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html
plus précisément : http://java.sun.com/docs/codeconv/html/Cod…s.doc8.html#367[/quote]

Bon à savoir
Merci ^^