TUTORIAL - Como usar getClass() em contexto static

1 resposta
M

Bonjour comunidade,

Talvez este não seja o local para postar esta dica e talvez não seja a melhor ideia, porém resolveu o meu problema e estou compartilhando com vocês a solução para o problema .

Como muitos desenvolvedores por aqui, um belo dia eu precisei obter imagens de dentro de um arquivo JAR executavel para a minha aplicação, pesquisando pela net achei o seguinte código, totalmente funcional:

getClass().getClassLoader().getResource("arquivo.jpg");

O problema começou quando eu precisei fazer isso de dentro de um método estático e não tinha outra alternativa.

A solução encontrada por mim foi criar uma classe simples, com um método apenas para recuperar esta imagem e retornar um objeto para a aplicação com o caminho da imagem. segue o código em questão

/**
 *  Obtem imagem de arquivos JAR
 * 
 *  @param nome Nome do arquivo a ser recuperado do arquivo JAR
 *  @return Retorna um ImageIcon do arquivo 
 *  
 *  @author Fabricio Souza Santos
 * 
 * */
public static ImageIcon im(String nome){
	
class Imagem{
		
public ImageIcon get(String nome){

 return new ImageIcon(getClass().getClassLoader().getResource(nome));	
  
}//end of get	
			
}//end of class Imagem	
	
return new Imagem().get(nome);
	
}//end of im

,
bem simples, criei um método dentro da minha aplicação que faz chamada para a função im. Esta função cria um objeto da classe Imagem que por sua vez chama o getClass() para recuperar o path da imagem

bem , é isso, espero que tenha sido util

ate

1 Resposta

rmendes08

Se era só para obter um objeto do tipo class você poderia ter feito assim:

class MyClass{
   static{
      Class<MyClass> c = MyClass.class;
   }
}
Criado 1 de setembro de 2011
Ultima resposta 1 de set. de 2011
Respostas 1
Participantes 2