DEV Community

Java Efetivo (livro)
Java Efetivo (livro)

Posted on • Edited on

Prefira as listas aos arrays

  • Os arrays são covariantes, o que significa que um array de um subtipo é um subtipo de um array de um supertipo. Já os genéricos são invariantes.
  • Os arrays são reificados, ou seja, conhecem e fazem valer o tipo de seus elementos em tempo de execução, enquanto os genéricos são implementados pelo processo de erase, perdendo as informações sobre os tipos dos elementos em tempo de execução.
  • Não é permitida a criação de arrays genéricos devido à falta de segurança de tipos, que poderia resultar em ClassCastException em tempo de execução.
  • Tipos como E, List e List são tipos não reificados, enquanto tipos wildcard ilimitados, como List<?> e Map<?,?>, são reificados.
  • Recomenda-se utilizar List em vez de arrays quando se trata de type safety e interoperabilidade.
  • Arrays e genéricos têm diferentes regras de tipos, o que os torna incompatíveis. Recomenda-se substituir arrays por listas quando se misturam e ocorrem advertências ou erros na compilação.

Reforçando o resumo do resumo:

Segundo o artigo, as vantagens de preferir listas em vez de arrays incluem:

Type Safety: Listas oferecem maior segurança de tipo em tempo de compilação, enquanto arrays podem resultar em erros de tipo em tempo de execução, como ClassCastException.

Interoperabilidade: Listas são mais interoperáveis com código legado e outros tipos genéricos devido ao processo de erase usado pelos genéricos, enquanto arrays podem ser mais limitados nesse aspecto.

Eliminação de Advertências: O uso de listas em vez de arrays pode eliminar advertências de compilação, especialmente ao lidar com métodos varargs e tipos genéricos.

Confiabilidade: Embora possam ser um pouco mais verbosas e menos eficientes, as listas proporcionam uma maior tranquilidade em relação à segurança de tipo, evitando exceções em tempo de execução.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay