Exatamente. Quando o método está riscado em sua IDE, significa que ele está depreciado. Se você abrir a classe e verificar sua declaração perceberá a anotação @Deprecated.
O método para pegar o texto de JPasswordField é o getPassword:
Isso é porque quando o compilador vê que você tem um equals, mas o lado direito é uma constante e o esquerdo pode ser null, ele sugere que você inverta a ordem, para evitar NullPointerException.
PedroTOliveira
Está certo…
"".equals(field); é nullsafer pelo próprio contrato do método equals!
sugiro vc usar algo parecido com isso…
if (field == null || field.trim().isEmpty()) {
//alguma coisa
}
Eric_Yuzo
hmm…
Vivendo e aprendendo. Essa questão de nullsafe é novidade pra mim.
Valeu
T
tsalsicha
Mas em termos de segurança, esse nullsafer é melhor que o code[/code] ??
Eric_Yuzo
Seria mais para evitar o NullPointerException. Faça este teste:
String s = null;
System.out.println(s.equals(""));
Irá lançar um NullPointerException.
Depois faça este teste:
String s = null;
System.out.println("".equals(s));
Irá imprimir false.
ViniGodoy
tsalsicha, esse não será o primeiro e nem o último método riscado que você irá recair ao usar o Java. Sempre, nesses casos, o ideal é consultar o javadoc:
No javadoc do método getText() está escrito isso aqui:
É sempre preferível recorrer ao javadoc, do que ficar postando no fórum. Só se ele te ajudar, aí sim, venha postar a dúvida aqui. Digo isso pq geralmente é muito mais rápído.
ViniGodoy
Só comentando do teste NullSafe. Eu acho ele muito pouco útil.
Geralmente “” e nulo são sinônimos. E esse método: “”.equals(null) retorna false e não true.
Sem falar, que quando não são sinônimos, geralmente o null representa um erro de programação. Esse teste mascara o erro e, talvez, seria melhor receber a NullPointerException e ir até a raiz do problema.