Condição não funciona

Olá!
Sou iniciante em java e não sei porque isso não funciona:


Autenticado = "True";
			
if (Boolean.parseBoolean(Autenticado) == Boolean.TRUE) {
	//Rotina.
}
else{
	//Rotina.
}

Cai sempre no else. O que fiz de bobagem?? kkk
Obrigado.

Não entendi muito seu código.

Mas não seria isso. Que você queria?

Boolean Autenticado = true;  
    
	if (Autenticado == true) {  
	    //Rotina.  
		System.out.println("verdadeiro");
	}  
	else{  
		System.out.println("false");  
	} 

Caso queira trocar, para falso, so alterar o Autenticado pra false.

Ok?

Aqui ele retornou true.

public class Teste {

	public static void main(String[] args) {
		String Autenticado = "True";
		
		if (Boolean.parseBoolean(Autenticado) == Boolean.TRUE) {
			System.out.println("true");
		}
		else{
			System.out.println("false");
		}
	}
}

Aqui imprimiu True[code] public static void main(String[] args){
String autenticado = “True”;

	if(Boolean.parseBoolean(autenticado) == Boolean.TRUE){
		System.out.println("True");
	}else{
		System.out.println("False");
	}
}[/code]

Você precisa realmente fazer esse parseBoolean?

Acho que o que o amigo Sem_Nome escreveu já resolve o seu problema.

Tem certeza que tá caindo no else?? Não tem nada de errado não.

Mas só por curiosidade, o que você quer fazer com isso??

Para você compreender melhor o que aconteceu, nada melhor do que depurar o seu código.

O método parseBoolean (assim como os demais métodos da família parseYyyy, como parseInt, parseFloat, parseLong) visa receber uma String como entrada e converter a mesma para um boolean.
Isto significa que ele está utilizando a classe wrapper do tipo primitivo boolean para, a partir de uma entrada, realizar o processamento do código.
Logicamente que este tipo de situação é muito mais conceitual que rotineiro, provavelmente, um estudo.
O que precisa ver é se este método não está encrencando com a diferença de caixa (“T” maiúsculo e “este” minúsculo).

[quote=drsmachado]
O que precisa ver é se este método não está encrencando com a diferença de caixa (“T” maiúsculo e “este” minúsculo). [/quote]

Segundo a api [quote]Parses the string argument as a boolean. The boolean returned represents the value true if the string argument is not null and is equal, ignoring case, to the string “true”.[/quote]

Não há nada errado com o código mesmo. Pelo menos não vejo nada de errado.

Eu usaria:

autenticado = "True";  
              
if (Boolean.parseBoolean(autenticado)) {  
    // true
}  
else{  
    // false
} 

É má prática comparar algo com “true” ou “false”. Se precisar da condição contrária, use:

autenticado = "False";  
              
if ( ! Boolean.parseBoolean(autenticado)) {  
    // false
}  
else{  
    // true
} 

Deixe um espaço antes e um depois da “!” para evitar que esse operador fique “perdido” ou “invisível”.