DEV Community

Java Efetivo (livro)
Java Efetivo (livro)

Posted on

Item 35: Use os campos de instância em vez dos valores ordinais

1. Problemas com o Uso de Ordinais:

  • Manutenção Difícil:
    Reordenar as constantes de enum quebra a lógica dependente do método ordinal().

  • Limitações de Valor Int:
    Não é possível associar múltiplas constantes ao mesmo valor int.

  • Constantes Falsas Necessárias:
    Para valores int intermediários sem denominação, você precisa adicionar constantes não representativas.

2. Exemplo de Problema:

Image description

  • Reordenar Constantes:
    Quebraria numberOfMusicians().

  • Adicionar Constantes:
    Impossível sem conflitos de valores.

3. Solução Recomendada:

  • Use Campos de Instância: Image description

4. Benefícios da Solução:

  • Flexibilidade:
    Permite associar múltiplas constantes ao mesmo valor int.
    Manutenção Simplificada: Reordenar constantes ou adicionar novas não quebra a lógica existente.

  • Evita Constantes Falsas:
    Não há necessidade de adicionar valores intermediários desnecessários.

5. Recomendação Geral:

  • Evitar Ordinais:
    A especificação do Enum sugere que o método ordinal() deve ser usado principalmente por estruturas de dados baseadas em enums, como EnumSet e EnumMap.

  • Uso Restrito:
    Se não estiver criando tais estruturas, é melhor evitar o método ordinal().

Conclusão:
Utilize campos de instância em enums para armazenar valores associados, garantindo maior flexibilidade, facilidade de manutenção e evitando a criação de constantes artificiais.

Top comments (0)