char []无法转换为String

时间:2014-11-22 16:56:56

标签: java string char jpasswordfield

我试图设置在JPasswordField中输入的密码,并出现此错误:

"Incompatible types: char[] cannot be converted to String"

            dts.setSalary(Double.parseDouble(txtSalary.getText()));
            selected=chgAccess.getSelectedIndex();
            dts.setAccess_number((String)chgAccess.getItemAt(selected));
            dts.setLogin(txtLogin.getText());
            //HERE
            dts.setPassword((String)txtPassword.getPassword());

我该如何解决?

额外的问题:那么它应该在我的数据库中作为VARCHAR类型,它会起作用吗?我的意思是,我在数据库中为文本而不是密码创建了空格;我在MySQL中找不到数据类型密码。

2 个答案:

答案 0 :(得分:3)

getPassword返回char数组是有充分理由的 - 由于在内存中删除String内容有困难,因此无法查找String。相反,我建议salting the password并将哈希值存储在数据库中。

答案 1 :(得分:1)

getPassword()会返回char[] - 它不能简单地转换为java.lang.String。但是,您可以为此char数组构造一个新的String:

dts.setPassword(new String(txtPassword.getPassword()));

或者,更好的是:

dts.setPassword(String.valueOf(txtPassword.getPassword()));