用户名和密码字符串比较问题

Joh*_*nna 0 java

当我在passwordField输入 "ABCD",并使用的System.out.println(S21) - 检查密码 - 它显示 "[C @ 1372a1a",为什么呢?

  private void submit() {
    String s1 = userNameField.getText();
    char[] s2 = passwordField.getPassword();
    String s21 = s2.toString();


    if (s1.equals(management.getUsernamesAdmin())&& s21.equals(management.getPasswordsAdmin())) {
        SystemManagementPage admin = new SystemManagementPage(this, true, management);
        admin.setVisible(true);
        }
    } 
    }
Run Code Online (Sandbox Code Playgroud)

Kev*_*ose 12

你的问题在这里:

String s21 = s2.toString();
Run Code Online (Sandbox Code Playgroud)

这是在调用toString()a char[],并且不会返回任何有用的东西.代替,

String s21 = new String(s2);
Run Code Online (Sandbox Code Playgroud)

会给你一个由数组中的字符组成的字符串.

除此之外,我看不出你的代码不起作用的任何原因.