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.
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”.