如何修复'JPasswordField中的getText()已被弃用'

时间:2019-05-14 08:19:19

标签: java netbeans java-8

我的Java dekstop发送这样的错误我该怎么办?

  JPasswordField中的

getText()已弃用

我尝试替换getText()并更改为getPassword()

pst.setString(2,txtPass.getPassword());

1 个答案:

答案 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之前的数据。

     

使用数组,您可以在处理完数据后显式擦除数据。您可以用任何喜欢的东西覆盖阵列,并且即使在垃圾回收之前,密码也不会在系统中的任何位置出现。

Source