Estava fazendo um código que trabalhava de um certo modo se a String fosse vazia.
Para isso, fiz o seguinte:
if(palavra == "")
Mas não funcionava de modo algum.
Fiz então o seguinte:
if(palavra == null)
Também não funcionou, mas isso funcionou:
if(palavra.isEmpty())
Gostaria de entender o motivo do problema e a diferença entre esses três métodos.
Além disso, li também aqui no fórum um amigo explicando sobre a diferença entre
== e equals, mas no caso de objetos. E entendi a explicação a respeito do ‘pool’
de Strings do Java, mas e no caso de uma constante?
Por exemplo:
Existe diferença entre palavra.equals(null) e palavra == null ?
e entre palavra.equals("") e palavra == "" ?
Me desculpem reabrir o tópico depois de tanto tempo, mas não intendi uma coisa, eu vi que o método isEmpty é boolean, ou seja, ele retorna 1, se o objeto está vazio e 0 se ele não está vazio?
O método isEmpty da classe String apenas olha para o tamanho da String e não verifica se é null ou não. Alias, invocar isEmpty numa String nula dá NullPointerException.
Provavelmente estás a confundir este método com o método isEmpty de alguma classe StringUtils.