我的Java dekstop发送这样的错误我该怎么办?
JPasswordField中的getText()已弃用
我尝试替换getText()
并更改为getPassword()
:
pst.setString(2,txtPass.getPassword());
答案 0 :(得分:2)
将char[]
转换为String
。为此,您可以简单地使用String
构造函数String(char[] value)
:
pst.setString(2, new String(txtPass.getPassword()));
或者,您可以简单地使用@SuppressWarnings("deprecation")
作为弃用的要点,避免创建immutable String
,而在{{1 }}之后。
但是,这不是一个好主意,String
被弃用是出于以下原因:
创建了String后,如果另一个进程可以转储内存,则除了reflection之外,您将无法清除garbage collection之前的数据。
使用数组,您可以在处理完数据后显式擦除数据。您可以用任何喜欢的东西覆盖阵列,并且即使在垃圾回收之前,密码也不会在系统中的任何位置出现。