Condição If não está sendo obedecida em meu teste

Prezados, estou construindo uma verificação simples que não está sendo atendida como esperava e gostaria que alguém pudesse me ajudar.

boolean variavel1 = false;
string variavel2 = "";

if ((variavel1 == "false") && (variavel2 != "")){
      código...
}else{
     código...
}

Mesmo não obedecendo aos dois critérios está entrando no if, quando que o meu objetivo é que ele caia no else.

Alguém poderia me ajudar onde eu estou errando nas condições?
Obrigado.

Isso é Java mesmo?

Você não deve comparar Strings com boolean. O fato da String conter a palavra “false” não a torna um boolean.

Também não se utiliza == ou != para comparar String com String, já que são objetos. Usa-e equals (ou mesmo equalsIgnoreCase):

boolean variavel1 = false;
String variavel2 = "";

if ( ( ! variavel1 ) && ( ! variavel2.equals("") ) ){
      código...
}else{
     código...
}

Abraço.

1 curtida

Rs…é java sim
É que eu iniciei a pouquíssimo tempo e tenho dúvidas bobas como essas ainda.

Obrigado!

boolean variavel1 = false;
string variavel2 = "";

if (!variavel1 && variavel2.isEmpty()){
      //entra aqui
} else{
     //entra aqui
}