Post original no LinkedIn. O conteúdo abaixo é um registro do que aprendi com o post. Nada aqui foi autoria minha.

O uso correto do If em Java

...e como evita-lo!

O if deve ser usado quando é necessário tomar decisões diretas e locais no código. No entanto, o uso excessivo pode indicar que a lógica não está bem estruturada.

✅ Para decisões simples e pontuais

if (idade >= 18) {
  System.out.println("Você pode dirigir!");
}

✅ Para validar entradas e lançar exceções

if (valor <= 0) {
  throw new IllegalArgumentException("O valor deve ser positivo!");
}

✅ Para fluxos simples dentro de loops

for (Produto produto : listaProdutos) {
  if (produto.getPreco() > 100) {
    System.out.println(produto.getNome() + " é caro!");
  }
}

Quando evitar o if

❌ Muitos if-else aninhados.
➡️ Prefira polimorfismo ou o padrão Strategy

❌ Controle de muitos estados
➡️ O padrão State é mais eficiente

❌ Escolha entre várias opções fixas
➡️ Use um Map ao invés de if-else gigante

Exemplo de substituição do if-else por um Map

Map<String, Runnable> operacoes = Map.of(
  "PIX", this::processaPix,
  "BOLETO", this::processaBoleto
);
 
operacoes.getOrDefault(tipo, () -> {
  throw new IllegalArgumentException("Tipo inválido");
}).run();

O if não é o vilão, mas se espalhar pelo código pode ser um sinal de alerta. Prefira abstrações inteligentes para evitar a complexidade desnecessária.