É possivel pegar o tipo de dado dentro de um ArrayList<Object>?

7 respostas
RogerioK

Ex, se o dado inserido é String, Int, Float, Decimal etc…

7 Respostas

Dyego_Sutil

Essa eu também vou querer saber :smiley:

Brayan
List<Object> array = new ArrayList<Object>();
array.add("Teste");
array.add(100);
array.add(10.44);

for (Object o : array) {
    System.out.println(o.getClass());
}

assim?

Francisco_Silva

É possível descobrir o tipo de instância.

if(qualquerObjetos.get(0) instanceof String) System.out.print("é uma String!"); if(qualquerObjetos.get(0) instanceof Integer) System.out.print("é um Integer!!"); . . .

Editado: Do jeito do Brayan é bem mais facil…
Agora se tiver que descobrir o tipo e também proceder de forma diferente para cada tipo de Objeto… aconselho usar o operador instanceof mesmo.

otaviojava

Afinal todos os objetos do java herdam da classe Objetc.

RogerioK

Isso mesmo, mas ele não classifica nenhum tipo como Float?

Brayan
List<Object> array = new ArrayList<Object>();
	
//Float: O 'f' no final indica que o valor é um float.
array.add(10.44f);
		
//Double: O 'd' no final indica que o valor é um double.
array.add(35.52d);
		
//Double: Quando não estiver explícito se um determinado valor de ponto flutuante for um double ou um float, por padrão ele será um double.
array.add(44.13);
		
		
for (Object o : array) {
	System.out.println(o.getClass());
}
RogerioK
Brayan:
RogerioK:
Isso mesmo, mas ele não classifica nenhum tipo como Float?
List<Object> array = new ArrayList<Object>();
	
//Float: O 'f' no final indica que o valor é um float.
array.add(10.44f);
		
//Double: O 'd' no final indica que o valor é um double.
array.add(35.52d);
		
//Double: Quando não estiver explícito se um determinado valor de ponto flutuante for um double ou um float, por padrão ele será um double.
array.add(44.13);
		
		
for (Object o : array) {
	System.out.println(o.getClass());
}

Obrigado Brayan, disso eu não sabia ;)

Criado 24 de janeiro de 2011
Ultima resposta 25 de jan. de 2011
Respostas 7
Participantes 5