Como reconhecer um int, double ou float ou outros usando generics?

6 respostas
rafacyber

Oi para todos vocês,

Eu queria fazer um array que armazenasse dados tipo int, double, float e outros. Como posso proceder para o java aceitar armazenar esses dados sem acusar erro?

Procurei na class Number mas não encontrei grande coisa, será que existe uma forma de programar com generics?

Já pesquisei a respeito mas não consigo encontrar uma forma de armazenar diferentes tipos de dados em um Array. :shock:

6 Respostas

T

A resposta simples é “não; generics aceitam apenas objetos, não tipos primitivos”.

T

Entretanto, você pode usar um array de Number:

Number[] n = new Number[] { 
    Integer.valueOf (10),
    Float.valueOf (2.3f),
    Double.valueOf (3.4),
}

EDIT - Desculpe, esqueci de pôr os colchetes em “Number[] n = new Number[] {”…

rafacyber

Muito grato pela resposta.

rafacyber
Number[] n = new Number {   
Integer.valueOf (10),  
Float.valueOf (2.3f),  
Double.valueOf (3.4),  
 }

Parece que o código acima não é aceito por Number ser uma classe abstrata e não poder ser instanciadas.

rafacyber

Agora entendi, o código é escrito desse jeito:
:arrow:

Number[] numero = {1,2, 3, 4, 5.5, 6, 7.9, 8, 9.2f};
Anderson_Leite
ou usar a lista da forma antiga
List ista = new ArrayList();
		
		ista.add(new Integer(1));
		ista.add(2F);
		ista.add(3D);

só pro int que vc vai precisar do wrapper, mas ai um .intValue() resolve. Pode ser ?

Criado 15 de agosto de 2008
Ultima resposta 15 de ago. de 2008
Respostas 6
Participantes 3