Como criar um array genérico (generic array) em Java? Solução do problema
Olá a todos! Recentemente comecei a estudar Java e me deparei com um problema ao trabalhar com genéricos. Preciso criar um array de elementos de tipo genérico, mas o compilador gera um erro.
Aqui está meu código:
```java
public class MyContainer {
private T[] array;
public MyContainer(int size) {
array = new T[size]; // Erro de compilação: "Type parameter 'T' cannot be instantiated directly"
}
}
```
Eu entendo que o Java não permite criar arrays de tipos genéricos diretamente devido ao type erasure. Mas como implementar corretamente essa estrutura? Preciso armazenar elementos em um array e poder acessá-los por índice. Tentei usar `new Object[size]` com casting, mas isso gera um aviso "unchecked cast".
Alguém pode me dizer como criar um array genérico em Java de forma que o código seja type-safe e não gere avisos? Existem abordagens alternativas? Já ouvi falar sobre `Array.newInstance()`, mas não entendi completamente.