English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

¿Cómo acceder al objeto de una clase sin usar el nombre de la clase en el contexto estático de Java?

La única solución posible es obtener el seguimiento de la pila de la hilera actual. Obtener el nombre de la clase de los elementos de la pila. Pásalo al método forName() de la clase llamada Class.

Esto devolverá un objeto Class, que puede usarnewInstance()Método para obtener una instancia de esta clase.

Ejemplo

public class MyClass {
   String name = "Krishna";
   private int age = 25;
   public MyClass() {
      System.out.println("Objeto de la clase MyClass");
      System.out.println("name: "+this.name);
      System.out.println("age: "+this.age);
   }
   public static void demoMethod() throws Exception {
      StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
      StackTraceElement current = stackTrace[1];
      Class.forName(current.getClassName()).newInstance();
   }
   public static void main(String args[]) throws Exception {
      demoMethod();
   }
}

Resultado de salida

Objeto de la clase MyClass
name: Krishna
age: 25
Te gustará también