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.
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).