答えは簡単です。と の違いを説明する実用的なアプローチを次に示します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[]
は非常に安全であると見なされます。