Usando Enum em método

3 respostas
juninhoall

Gostaria de saber se meu método está certo, fiz um enum

public enum Situacao {

    INVENTARIO, TOMBADO, BAIXADO
}
Chamei ele aqui, nessa classe para validar os seguintes métodos, colocarEmInventario , tombar , baixar
/**
     * colocarEmInventario (muda a situação do bem de "tombado" para "em
     * inventário"), tombar (inicializa a situação do bem para "tombado") e
     * baixar (muda a situação do bem de "tombado" para em "baixa").
     *
     */
    public void colocarEmInventario(Situacao tipoSituacao) {
        if (Situacao == tipoSituacao.TOMBADO) {
            tipoSituacao = tipoSituacao.INVENTARIO;
        } else {
            System.err.println("Não está tombado, operação invalida!");
        }
    }

    public void tombar(Situacao tipoSituacao) {
        tipoSituacao = tipoSituacao.TOMBADO;
    }

    public void baixar(Situacao tipoSituacao) {
        if (tipoSituacao == tipoSituacao.TOMBADO) {
            tipoSituacao = Situacao.BAIXADO;
        }else {
            System.err.println("Não está tombado, operação invalida!");
        }
    }
}

3 Respostas

A

Acredito que nenhum dos métodos faça o que você pensa que eles fazem.

Você chegou a rodar o código e ver o resultado?
O método colocarEmInventario não deve nem compilar.

Você já trabalhou com teste unitário?
Recomendo começar a escrever testes para suas classes e testar se o comportamento delas é certo ou errado.

Aliás, se postar um teste com o que espera que sua classe faça e o código atual, fica muito mais simples te indicar o que você precisa fazer.

ViniGodoy

Tem coisa invertida aí, você referencia um valor de um enum pela classe:

/**
     * colocarEmInventario (muda a situação do bem de "tombado" para "em
     * inventário"), tombar (inicializa a situação do bem para "tombado") e
     * baixar (muda a situação do bem de "tombado" para em "baixa").
     *
     */
    public void colocarEmInventario(Situacao tipoSituacao) {
        if (tipoSituacao == Situacao.TOMBADO) {
            tipoSituacao = Situacao.INVENTARIO;
        } else {
            System.err.println("Não está tombado, operação invalida!");
        }
    }

    public void tombar(Situacao tipoSituacao) {
        tipoSituacao = Situacao.TOMBADO;
    }

    public void baixar(Situacao tipoSituacao) {
        if (tipoSituacao == Situacao.TOMBADO) {
            tipoSituacao = Situacao.BAIXADO;
        }else {
            System.err.println("Não está tombado, operação invalida!");
        }
    }
}
juninhoall
ViniGodoy:
Tem coisa invertida aí, você referencia um valor de um enum pela classe:
/**
     * colocarEmInventario (muda a situação do bem de "tombado" para "em
     * inventário"), tombar (inicializa a situação do bem para "tombado") e
     * baixar (muda a situação do bem de "tombado" para em "baixa").
     *
     */
    public void colocarEmInventario(Situacao tipoSituacao) {
        if (tipoSituacao == Situacao.TOMBADO) {
            tipoSituacao = Situacao.INVENTARIO;
        } else {
            System.err.println("Não está tombado, operação invalida!");
        }
    }

    public void tombar(Situacao tipoSituacao) {
        tipoSituacao = Situacao.TOMBADO;
    }

    public void baixar(Situacao tipoSituacao) {
        if (tipoSituacao == Situacao.TOMBADO) {
            tipoSituacao = Situacao.BAIXADO;
        }else {
            System.err.println("Não está tombado, operação invalida!");
        }
    }
}
obrigado viny por responder, estou fazendo de outra forma, mas com enums ainda, logo que terminar meu projeto de web service posto para você ver, aproveitando esse tópico peço que verifique sua MP daqui alguns minutos
Criado 23 de maio de 2014
Ultima resposta 27 de mai. de 2014
Respostas 3
Participantes 3