Os arrays podem conter itens genéricos?
Tipos genéricos e arrays podem interagir de maneira diferente em Java. Considere o seguinte código:
ArrayList a = new ArrayList();
Este código é compilado com sucesso, criando um ArrayList genérico chamado a. No entanto, o código a seguir falha na compilação:
ArrayList[] a = new ArrayList[10];
Por que isso acontece? Parece que arrays e genéricos são incompatíveis. Para entender isso, vamos explorar o Type Erasure em Java. tipos brutos (objeto). Isso evita erros como colocar uma String em um ArrayList de inteiros. No entanto, as matrizes exigem um tipo bruto e os genéricos não podem ser representados como tipos brutos.
Corrigindo o problema da matriz
Para criar uma matriz de itens genéricos, você pode explicitamente converta o array para o tipo desejado:
ArrayList
ArrayList[] a = (ArrayList[]) new ArrayList[10];
Em Java, uma lista de listas não é considerada um array. Portanto, o código a seguir é compilado sem conversão de tipo:
ArrayList
ArrayList> b = new ArrayList>();
Arrays e tipos genéricos têm limitações em Java devido a Digite Apagamento. No entanto, ao converter explicitamente arrays para o tipo genérico desejado ou usar listas de listas, pode-se navegar por essas limitações e usar efetivamente tipos genéricos em ambos os contextos.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3