Como verificar se um método get de um field int foi preenchido ou não na classe! [resolvido]

3 respostas
kweles

Olá Pessoal tenho a seguinte situação:

Tenho uma classe que possui fields e métodos get e set, veja abaixo:

public class Ven_notaentrada {

	private int id_usuarioincluiu;
        private int id_situacao;

        public void setId_usuarioincluiu(int idUsuarioincluiu) {
		id_usuarioincluiu = idUsuarioincluiu;
	}

        public int getId_usuarioincluiu() {
		return id_usuarioincluiu;
	}

	public void setId_situacao(int idSituacao) {
		id_situacao = idSituacao;
	}

        public int getId_situacao() {
		return id_situacao;
	}

}

O usuário pode instanciar a classe e preencher apenas um campo e simplesmente chamar o método getId_usuarioincluiu(), conforme pode ser visto abaixo:
Contudo se os métodos get forem chamados o retorno será:
0 para getId_usuarioincluiu()
5 para getId_situacao()

O Grande problema é que preciso montar um comando de insert no banco apenas com os campos que foram preenchidos.
Neste caso todos seriam preenchidos e na tabela ven_notaentrada o campo id_usuarioincluiu seria preenchido com 0, mas tenho a necessidade
de que fique preenchido com null.

Contudo não posso assumir sempre que receber um campo int com o valor 0 em não colocá-lo no insert pois em alguns momentos haverá a necessidade de ter o valor 0.
Talves não neste exemplo que estou mostrando mas em outras tabelas e outros casos.
Como posso contornar esta situação.

Ven_notaentrada vne	=	new Ven_notaentrada();
vne.setId_situacao(5);

Obrigado pessoal

3 Respostas

ViniGodoy

Tem duas saídas.

  1. Use um outro valor para representar o nulo, como Integer.MIN_VALUE;
  2. Use Integer no lugar de int, pois o Integer admite o valor null.
kweles

ViniGodoy:
Tem duas saídas.

  1. Use um outro valor para representar o nulo, como Integer.MIN_VALUE;
  2. Use Integer no lugar de int, pois o Integer admite o valor null.

Olá ViniGodoy!

Obrigado pelo help.

Cara, a segunda opção entendi bem, mas a primeira não consegui visualizar direito, nem sei exatamente como implementá-la.

Vc sugere que eu deixe um valor default para o campo por exemplo -1.
daí qdo lesse se fosse este valor eu ignoraria.

Mas em qual momento eu preencheria para -1, no construtor?

Desculpe a falta de compreensão!

Com relação ao ObjectModel, eu deveria realizar o mesmo tratamento para casos como estes?

ViniGodoy

É sim. Imagine que ao invés de “null” vc vai escolher um valor que representa o null. Então, no mesmo lugar que vc faria que o integer = null, vc faria que esse campo = -1.

Criado 25 de março de 2010
Ultima resposta 25 de mar. de 2010
Respostas 3
Participantes 2