.class

3 respostas
R

Opa, hoje me deparei com um codigo parecido com esse:

Foo.class.getName();

Gostaria de saber oque quer dizer esse .class

Vlw

3 Respostas

thundercas

Quando você acessa o .class de determinada classe, ficam disponíveis para você diversas informações em relação à classe. No seu caso, o método retornará o nome da classe.

Isso é útil quando você deseja identificar o tipo de determinado objeto.

zerokelvin

Foo é um objeto qualquer… se for um Integer, esse método retornará interger, um String, retornará string…
isso é mto util qdo vc precisa trabalhar com genéricos, por exemplo Object… Um metodo que receba um Object como argumento, recebe um string ou um integer, um arraylist e uma porrada de coisa… dentro do metodo vc pode fazer:

if(objectArgumentoDoMetodo.class.getName().equals("java.util.ArrayList")){
faça qualquer coisa com o array list
}else{

if(objectArgumentoDoMetodo.class.getName().equals("java.util.OutroTremQualquer")){
faça qualquer coisa com o OutroTremQualquer
}
}
francislon

Você está recuperando informações da classe utilizando a API de Reflection. Para conhecer mais sobre a api de maniputalação de classes com reflection vide:

http://download.oracle.com/javase/7/docs/api/java/lang/Class.html

Se quiser conhecer mais afundo Reflection:

http://download.oracle.com/javase/tutorial/reflect/

Criado 24 de março de 2011
Ultima resposta 24 de mar. de 2011
Respostas 3
Participantes 4