Java 无法将字符[]转换为字符串
我试图设置在JPasswordField中输入的密码,出现以下错误:Java 无法将字符[]转换为字符串,java,string,char,jpasswordfield,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((St
"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中找不到数据类型密码。getPassword返回一个char[]-它不能简单地转换为java.lang.String。但是,您可以为此字符数组构造一个新字符串:
dts.setPassword(new String(txtPassword.getPassword()));
或者,更好的是:
dts.setPassword(String.valueOf(txtPassword.getPassword()));
getPassword返回一个char[]-它不能简单地转换为java.lang.String。但是,您可以为此字符数组构造一个新字符串:
dts.setPassword(new String(txtPassword.getPassword()));
或者,更好的是:
dts.setPassword(String.valueOf(txtPassword.getPassword()));
返回字符数组有一个很好的理由-防止由于难以删除内存中的字符串内容而查找字符串。相反,我建议将散列存储在数据库中。返回一个char数组,这是一个很好的理由,因为很难在内存中删除字符串内容,所以无法查找字符串。相反,我建议将散列存储在数据库中。调用几乎总是比新字符串好。调用几乎总是比新字符串好。