Cannot create a generic array of E

2 respostas
T
package deque;

public class DataBlock<E>  {

	private final int DIM_BLOCK = 100;
	private E[] block;
	
	public DataBlock(){
		block=  new E[DIM_BLOCK];
		
	}
}

o que estou aki fazendo de mal ? Como resolver este problema ?

2 Respostas

C

Olá TelmaSofia,

Você não pode criar um array de um tipo genérico (eu ainda não entendi o porquê :P). Você pode fazer assim:

block = (E[]) new Object[DIM_BLOCK];

ou então usar alguma classe da API Collection. Preste atenção que essa primeira alternativa irá gerar um warning na compilação, mas não tem problema… Você pode usar a anotação SuppressWarnings para tirar esse warning, caso você queira.

Até mais, :wink:

T

muito obrigada…
realmente n faz muito sentido…

Criado 5 de novembro de 2006
Ultima resposta 5 de nov. de 2006
Respostas 2
Participantes 2