Atribuir valor null para boolean RESOLVIDO

Pessoal seguinte: tenho uma Classe Atendimento com um campo fumante como boolean, e uma classe AtedimentoBussiness onde verifica as regras de negocio

public class Atendimento{

            private boolean fumante;

           //metodos getter e setter

}

public class AtendimentoBusiness{

           public Atendimento incluir(Atendimento atendimento){

                 //Nao consigo realizar esse teste pois o valor é boolean
                       if (atendimento.isfumante == null){

                         atendimento.setfumante = false;
                       }

            }

}

Erro: the == operator is undefined for the argument type boolean

boolean != Boolean
boolean aceita true e false.
Boolean aceita Boolean.TRUE, Boolean.FALSE e null.

Por default os atributos primitivos como int double etc são inicializados com 0, e os atributos do tipo boolean é inicializado com false, nesse caso do seu if ele nunca será null!!!

Olá Marcio…

    Vou tentar te ajudar com a lógica. Porque você não deixa essa variável fumante inicializado como false. Neste caso no seu formulário ou sei la aonde você irá utilizar, você só ira atribuir true caso a pessoa ou o  atendimento seja  fumante. 
    Caso isso que eu te falei não dê certo passe qual o objetivo. Variáveis do tipo boolean em JAVA  só aceitam true ou false.

                                        Espero ter ajudado....

Você quer algo do tipo:

  • Fumante
  • Não fumante
  • Não informado

Sim?? :wink:

Se for isso, vc poderá usar enun’s

enum fumante

SIM, NAO, NAO_INFORMADO;

Easy
=D

Então pessoal, estou tentando implementar com a ideia do entanglement, mais não consegui ainda, conseguindo mando a solucao, no projeto a varialvel fumante precisa realmente ser boolean

Então pessoal, estou tentando implementar com a ideia do entanglement, mais não consegui ainda, conseguindo mando a solucao, no projeto a varialvel fumante precisa realmente ser boolean

Não há um método isNull() ou isEmpty() que represente isso que vc quer?
Desculpe-me se estou falando bobeira.

O que tu queres fazer, colocar a false se for null já é feito automaticamente quando crias a variavel. Um boolean nunca é null, é logo false na criação.

Assim, podes retirar as duas linhas do if sem qualquer problema

Marcio,

 Se você for usar Boolean entenda que ele não é um tipo primitivo e sim um objeto. Se você não der new Boolean na variável ela será null, ou seja, você criou apenas uma referência daquele tipo e não um objeto. Sendo assim você tem que analisar o problema para conseguir usar essa solução, mas eu aconselho você a utilizar a variável como tipo primitivo boolean.

[quote=jonathan.rodrigues]Marcio,
Se você for usar Boolean entenda que ele não é um tipo primitivo e sim um objeto. Se você não der new Boolean na variável ela será null, ou seja, você criou apenas uma referência daquele tipo e não um objeto. Sendo assim você tem que analisar o problema para conseguir usar essa solução, mas eu aconselho você a utilizar a variável como tipo primitivo boolean.
[/quote]

Apoiado :thumbup:

public class Atendimento{

//antes

//private boolean fumante;

//depois

private Boolean fumante;

//metodos getter e setter

}

public class AtendimentoBusiness{

public Atendimento incluir(Atendimento atendimento){

atendimento.setfumante(null);

if (atendimento.isfumante == null){

atendimento.setfumante = false;
}

}

}