Как исправить 'getText () в JPasswordField устарела' - PullRequest
1 голос
/ 14 мая 2019

моя ошибка отправки Java dekstop, как это, что я могу сделать?

getText () в JPasswordField устарела

я пытался заменить getText() иизменить на getPassword():

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

1 Ответ

2 голосов
/ 14 мая 2019

Преобразовать char[] в String.В этом отношении вы можете просто использовать String конструктор String(char[] value):

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

В качестве альтернативы, вы можете просто использовать @SuppressWarnings("deprecation") в качестве основной точки устаревания, избегая создания immutable String полностью потерпел поражение, создав впоследствии String из массива char[].

Однако это не очень хорошая идея, getText() не рекомендуется по причине:

После того, как вы создали строку, если другой процесс может создать дамп памяти, вы не сможете (кроме отражением ) избавиться от данных до мусораколлекция запускается.

С массивом вы можете явно стереть данные после того, как с ним покончено.Вы можете перезаписать массив чем угодно, и пароль не будет присутствовать нигде в системе, даже перед сборкой мусора.

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...