答えは簡単です。と の違いを説明する実用的なアプローチを次に示しますgetPassword()。getText()
JPasswordField jt=new JPasswordField("I am a password");
System.out.println("The text is "+jt.getText());
System.out.println("The password is "+jt.getPassword());
出力
I am a password
[C@1e4a47e
getPassword()メソッドはパスワードを as として返しchar[]ますgetText()が、 はパスワードをプレーン テキストとして、つまり の形式で返しますString。
ただし、このように印刷すると、
System.out.println(new String(jt.getPassword()));
getText()これはinとほぼ同じJPasswordFieldです。getPassword()ただし、これは を内部的に使用してから配列getText()に変換するという意味ではありません。char
このgetPassword()メソッドは、非文字列 API、つまりSegment. ただし、Segmentこれも不変ですが、getPassword()メソッドは から char 配列を取得してSegment返します。
ただし、 aStringは不変で不変でchar[]あるため、消去できるため、 achar[]は非常に安全であると見なされます。