Если вы хотите получить класс вызывающих абонентов, вы можете использовать newi sh (введено в Java 9) StackWalker
API:
class Foo {
private static final StackWalker SW = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE);
public Foo() {
Class<?> bar = SW.getCallerClass();
}
}
class Bar {
private Foo foo = new Foo();
}
Если вы используйте более старую Java версию, есть неподдерживаемая sun.reflect.Reflection.getCallerClass()
.