Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como validar null no construtor?

Ola pessoal tudo bem? Gosto de testar praticamente tudoo que esta sendo dado no curso, nao somente isto trabalho em uma empresa onde existe uma % de validação de codigo para podermos implementar o mesmo na produção, exemplo um codigo novo tem que ter sido 95% validado ou nao sobe para produção.

No exemplo da classe Carro dado no curso foi colocado o construtor de codigo abaixo onde temos uma String modelo ao qual eu gostaria de saber como posso chamar esta classe enviando um null na mesma e assim conseguir validar o if = null

Tentei chamar um new Carro passando apenas ano e preço e nem compilou, pois nao existe um construtor apenas com ano e preço. Tentei colocar apenas 2 aspas no lugar do modelo, mas isto nao significa que seja um campo null e sim um carro com modelo Vazio ou em Branco.

Queria testar este null para validar o codigo, mas nao achei como. Seria este um IF inutil em no codigo visto que nao tem como enviar o campo null?

    public Carro(int ano, String modelo, double preco){
        if(ano >= 1891){
            this.ano = ano;
        }else{
            System.out.println("O ano informado está inválido. Por isso usaremos 2017!");
            this.ano = 2017;
        }

        if( modelo != null){
            this.modelo = modelo;
        }else{
            System.out.println("O modelo não foi informado. Por isso usaremos Gol!");
            this.modelo = "Gol";
        }

        if(preco > 0){
            this.preco = preco;
        }else{
            System.out.println("O preço não é válido. Por isso usaremos 40000.0!");
            this.preco = 40000.0;
        }        
2 respostas

Oie Anderson, tudo bem contigo?

Quando usamos o construtor obrigamos que aquela entrada aconteça por isso é impossível deixar o espaço para colocarmos o "modelo" sem nada. A única forma da informação ir como "null" é se literalmente colocarmos o null ali, segue os exemplos abaixo:

Dessa forma:

Carro carro = new Carro(5416, null, 10000);

Ou desse jeito aqui:

String modelo = null;

Carro carro = new Carro(5416, modelo, 10000);

Não diria que esse "if" seria inútil já que dependendo da aplicação pode ocorrer do objeto ir como null, mas nesse exemplo do carro seria impossível de acontecer a não ser que nós literalmente colocássemos o "null" ali como nos exemplos mostrados acima.

Espero ter conseguido ajudar!

Se tiver qualquer outra dúvida é só mandar por aqui :)

Bons estudos!

solução!

Olá Igor, tudo bem? Muito obrigado pela resposta, não sabia que eu poderia apenas escrever null de entrada para validar, achei que null fosse algo mais especifico que eu nao conseguisse replicar.

Forcei aqui e consegui validar, então no meu caso, apesar de ser algo que como citou nunca deve ocorrer, é possivel validarmos o tratamento que foi dado caso por algum motivo isto ocorra.

vlw mesmo, Brigadao!