У меня есть типичная переменная пароля char[]
с геттерами и сеттерами. Я сделал это, чтобы моя переменная пароля никогда не отображалась в виде обычного текста.char [] пароль получателя и сеттеры для строки
private String passwordAsString;
private char[] password;
public char[] getPassword() { return password; }
public void setPassword(char[] password) { this.password = password; }
Я хочу отправить свой пароль в базу данных, но я считаю, что его нужно отправлять как тип String. Итак, я решил создать новую переменную под названием PasswordAsString
. Есть ли лучший подход? Это кажется неряшливым.
Во-вторых, мой getPasswordAsString не возвращает пароль в виде строки. То, что я до сих пор:
public void setPasswordAsString(String passwordAsString) {
this.passwordAsString = passwordAsString;
}
public String getPasswordAsString() {
return password.toString();
}
Замечание: при взятии и возврате массивов паролей вы можете рассмотреть возможность отправки и создания копии массива. – ChiefTwoPencils
Вам не нужна никакая другая переменная. У вас уже есть пароль в вашем массиве символов. Все, что вам нужно, это создать String из этого массива char. http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#String-char:A- –
Обычной причиной хранения паролей в объектах типа 'char []' является * избегайте * помещать их в 'String', которые не могут быть очищены и которые могут зависать в памяти VM в течение неопределенного промежутка времени даже после того, как они больше не доступны. –