This content originally appeared on DEV Community and was authored by Java Efetivo (livro)
Não retorne null:
- Métodos que retornam null no lugar de coleções ou arrays vazios exigem tratamento adicional do cliente para evitar exceções.
Problemas com null:
- Clientes precisam adicionar verificações redundantes (if para verificar null).
- Omissões nessas verificações podem passar despercebidas, resultando em bugs.
- Dificulta a implementação do método que retorna a coleção ou array.
Argumento contra o null:
- Não se preocupe com o desempenho da alocação de coleções ou arrays vazios, a menos que seja comprovadamente um gargalo.
Alternativas eficientes:
- Use coleções ou arrays vazios em vez de null.
- Coleções imutáveis podem ser retornadas repetidamente (ex.: Collections.emptyList(), Collections.emptySet()).
- Arrays vazios também podem ser retornados de forma eficiente.
Desempenho otimizado:
- Use coleções imutáveis vazias reutilizáveis para evitar novas alocações desnecessárias.
- Retorne o mesmo array vazio em vez de criar um novo a cada vez
Exemplos de código:
Método incorreto que retorna null:
// Exemplo incorreto
public List<Cheese> getCheeses() {
return cheesesInStock.isEmpty() ? null : new ArrayList<>(cheesesInStock);
}
Tratamento inadequado no cliente:
List<Cheese> cheeses = shop.getCheeses();
if (cheeses != null && !cheeses.isEmpty()) {
// Lógica para lidar com queijos disponíveis
}
Método correto que retorna uma coleção vazia:
// Exemplo correto
public List<Cheese> getCheeses() {
return cheesesInStock.isEmpty() ? Collections.emptyList() : new ArrayList<>(cheesesInStock);
}
Uso de uma coleção vazia imutável:
public List<Cheese> getCheeses() {
return cheesesInStock.isEmpty() ? Collections.emptyList() : new ArrayList<>(cheesesInStock);
}
Uso com arrays vazios:
// Retorno de array vazio corretamente
public Cheese[] getCheeses() {
return cheesesInStock.toArray(new Cheese[0]);
}
Uso otimizado de array vazio:
private static final Cheese[] EMPTY_CHEESE_ARRAY = new Cheese[0];
public Cheese[] getCheeses() {
return cheesesInStock.toArray(EMPTY_CHEESE_ARRAY);
}
Conclusão:
Nunca retorne null: Sempre prefira coleções ou arrays vazios. Isso simplifica a API, evita erros e raramente impacta negativamente o desempenho.
This content originally appeared on DEV Community and was authored by Java Efetivo (livro)

Java Efetivo (livro) | Sciencx (2024-09-12T14:27:29+00:00) Item 54 – Retorne coleções ou arrays vazios, em vez de nulos. Retrieved from https://www.scien.cx/2024/09/12/item-54-retorne-colecoes-ou-arrays-vazios-em-vez-de-nulos/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.