我用jPasswordField提取密码
    String password;
    for(int i = 0; i < jPasswordField.getPassword().length; i++) {
      password += (jPasswordField.getPassword()[i]);
    }
这样就正确,而我这样:
StringBuffer password;
password.append(jPasswordField.getPassword())
就要报错
但是jPasswordField.getPassword() 返回char[]
而password.append(char[])也有呀,
这是为什么?

解决方案 »

  1.   

    StringBuffer未初始化改为以下就可以了:
        StringBuffer password=new StringBuffer(" ");
        password.append(jPasswordField1.getPassword());
        System.out.println("password is "+password);
      

  2.   

    为什么不这样写呢:
    String password = new String(jPasswordField1.getPassword());
    System.out.println("password is "+password);
      

  3.   

    yuan0520(不爱涉水的渔者) 他们不是说StringBuffer比String快的嘛!(我也不知道是不是真的)
      

  4.   

    一般处理比较大的字符串对象才用StringBuffer,对于你这个例子我觉得没有必要用StringBuffer.
      

  5.   

    StringBuffer password = new StringBuffer();
    password.append(jPasswordField.getPassword());
    不然password是null,怎么可以用实例的方法,append
      

  6.   

    StringBuffer可以动态改变字符串的长度,所以在处理大量的字符串以及需要对字符串进行大量的合并等操作时往往用StringBuffer,速度比String会快很多,String长度是不变的,通常需要是需要重新创建一个对象