¿Cómo puedo obtener la clase de objeto que llama desde un método en Java?

FranAguiar:

Sé que puedo obtener el nombre de clase de método y StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();pero eso no es lo que quiero. Quiero que el objeto de la clase, para que pueda acceder a su interfaz, anotaciones, etc ...

¿Es posible? Class<?> classObject = getCallerClass();

Veo esta pregunta, pero eso es sólo por el nombre de la clase.

Como llegar a la clase de persona que llama en Java

Editar: Ahora estoy pasando la clase de esta manera:

someService.dummyMethod(foo1, foo2, new Object(){}.getClass());

  someService(String foo1, int foo2, Class<?> c) {
    // stuff here to get the methodname, 
    // the interface of the class and an annotation from the interface.
}

Me llamo someService de una gran cantidad de diferentes clases, si no es posible, voy a seguir de esta manera, pero si hay una manera de conseguir la clase de persona que llama en tiempo de ejecución prefiero de esa manera.

Zabuza:

Recibe el nombre de clase utilizando el código de su pregunta vinculada: ¿Cómo conseguir la clase de persona que llama en Java

A continuación, utilice el nombre de clase para recuperar la clase, utilizando el código de aquí: Obtención de clase por su nombre

código completo:

String callerName = Thread.currentThread().getStackTrace()[2].getClassName();

try {
    Class<?> caller = Class.forName(callerName);
    // Do something with it ...
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

(Respuesta de la comunidad, puesto que sólo mezcla de respuestas existentes).

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=222574&siteId=1
Recomendado
Clasificación