Nome da Classe

3 respostas
H

Talvez este problema não tenha solução. Em todo o caso ei-lo:

Como obter o nome da própria classe a partir de um método estático da mesma?

Já tentei a seguinte solução:

  • Existe uma sintaxe para obter o objeto Class a partir de um método estático, porém, eu preciso o nome da própria classe (ovo & galinha :slight_smile: ).

    String nome_da_classe = XXX.class.getName();

  • Porém, se eu eliminar XXX. dá um erro de compilação.

Alguém se habilita?

3 Respostas

A

cara tenta isso:

/**
 * @author diego
 *
 */
public class Teste {

	private static Teste teste = new Teste();

	public static String getClassName() {
		return teste.getClass().getName();
	}
	
	public static void main(String[] args) {
		System.out.println("Nome desta classe = " + Teste.getClassName());
	}
}
H

É, Avenger. A solução é por aí mesmo – Não tem como escapar da criação de um objeto da classe…

Se o objeto for muito grande, alguma economia de memória pode ser feita assim:

class Teste
{
  // o objeto é imediatamente descartado
  static String classname = new Teste().getClass().getName();

  public static void main(String[] args) 
  { 
    System.out.println("Nome desta classe = " + classname); 
  }
}

Obrigado por ter aceito o desafio.

J

Se vc quiser ter mais econômia de memória pode fazer assim:

class Teste {
//método que retorna o nome da classe
   public static String className () 
   {
      return new Teste ().getClass().getName();
   }

   public static void main(String[] args)
   {
      System.out.println("Nome desta classe = " + Teste.className());
   }
}

:wink:

[color=“green”]Seus posts foram editados para incluir BBCode nos códigos - Matheus[/color]

Criado 1 de fevereiro de 2004
Ultima resposta 2 de fev. de 2004
Respostas 3
Participantes 3