Chaîne de la méthode Append() : StringBuilder vs StringBuffer

J'ai cette méthode ,

  public static void main(String[] args) {

    String s = "Java";
    StringBuilder buffer = new StringBuilder(s);
    change(buffer);

       System.out.println("What's strBuf.charAt(5)? " + strBuf.charAt(3));
       System.out.println(buffer);
  }

     private static void change(StringBuilder buffer) {

          buffer.append(" and HTML");
  }

Lorsque j'exécute le code à l'aide de StringBuilder je reçois un message d'erreur ,
"Le constructeur StringBuilder(Chaîne de caractères) n'est pas défini
La méthode charAt(int) n'est pas défini pour le type de StringBuilder"

Sur la proccess de débogage , j'ai essayé de StringBuffer au lieu et cela a fonctionné parfaitement.
Le contenu de l'objet StringBuffer est compilé en Java et Eclipse.."

  public static void main(String[] args) {

    String s = "Java";
    StringBuffer strbuf = new StringBuffer(s);
    change(strbuf);

               System.out.println("The Stringbuffer.charAt(5) is ? " + strbuf.charAt(3));
           System.out.println(strbuf);
 }

       private static void change(StringBuffer strbuf) {

                       strbuf.append(" and Eclipse");
 }
 }

Quelqu'un peut-il m'éclairer pourquoi le dernier"StringBuffer" travaillé et Stringbuilder na pas.
et si ou non il est légal de passer la ficelle dans le dans le StringBuilder constructeur. "StringBuilder(s);"

  • Vous avez raison, je vérifie la java docs et il indique que le passage d'une chaîne dans le StringBuilder constructeur est légal, mais il ne marche pas encore dans la version d'eclipse, je suis à l'aide .Toute suggestion.
InformationsquelleAutor zee | 2013-06-18