Opa, hoje me deparei com um codigo parecido com esse:
Foo.class.getName();
Gostaria de saber oque quer dizer esse .class
Vlw
Opa, hoje me deparei com um codigo parecido com esse:
Foo.class.getName();
Gostaria de saber oque quer dizer esse .class
Vlw
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.
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
}
}
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: