mysql workbench 中的奇怪密码类型

Strange type of password in mysql workbench

我在 JPasswordField 中输入密码时遇到密码问题。

kasirlozinka = new JPasswordField("lozinka");
final String lozinka = new String(kasirlozinka.getPassword().toString());

当我在 mysql workbench 中写入 "lozinka" 之类的密码时,我得到了 "[C@3f528528" 之类的密码,所以我的问题是,如何解决这个问题并获得用户输入字符串,这是什么类型的密码,如何解密?

"[C@3f528528"char[]String 表示。 getPassword() returns char 数组。只需删除 toString:

final String lozinka = new String(kasirlozinka.getPassword());

调用 JPasswordField.getPassword() returns a char[] (and you don't want to call toString() on that, because array doesn't override Object.toString). You can use String.valueOf(char[]) 使其成为 String。像,

char[] pass = kasirlozinka.getPassword();
String pw = String.valueOf(pass);

JPasswordField.getPassword()returns一个char[]。在数组上调用 toString() 将产生您所看到的结果。

要将密码转换为字符串,请删除 toString():

final String lozinka = new String(kasirlozinka.getPassword());

这将调用 new String(char[]) 构造函数。

应删除 toString()。 kasirlozinka.getPassword() returns char[] 可以传递给 String 构造函数 :

kasirlozinka = new JPasswordField("lozinka");
//final String lozinka = new String(kasirlozinka.getPassword().toString());
final String lozinka = new String(kasirlozinka.getPassword());