可能重复:
如何检查是否JPassword字段为空
在创建一个登录报名表,我使用的两个密码字段。 保存数据之前,我想比较这两个领域; 如果它们匹配,则该数据应保存在文件中。 如果不应该打开的对话框。 请谁能帮助我。
可能重复:
如何检查是否JPassword字段为空
在创建一个登录报名表,我使用的两个密码字段。 保存数据之前,我想比较这两个领域; 如果它们匹配,则该数据应保存在文件中。 如果不应该打开的对话框。 请谁能帮助我。
最安全的方法是使用满足Arrays.equals :
if (Arrays.equals(passwordField1.getPassword(), passwordField2.getPassword())) {
// save data
} else {
// do other stuff
}
说明: JPassword.getText
是故意过时的,以避免使用Strings
赞成使用的char[]
返回由getPassword
。
当调用getText
你可能不被改变(除了反射)的字符串(不可变对象)等的密码留在内存中,直到垃圾收集。
字符数组但是可以被修改,因此密码会真的不留在内存中。
这上面的解决方案是在与该方法保持一致。
这将有助于表明您已经尝试了什么?
但你会做这样的:
//declare fields
JPasswordField jpf1=...;
JPasswordField jpf2=...;
...
//get the password from the passwordfields
String jpf1Text=Arrays.toString(jpf1.getPassword());//get the char array of password and convert to string represenation
String jpf2Text=Arrays.toString(jpf2.getPassword());
//compare the fields contents
if(jpf1Text.equals(jpf2Text)) {//they are equal
}else {//they are not equal
}