Como llegar de clases en el valor del campo utilizando la reflexión?

Java:

Considere el siguiente código

class Foo {

}

class Bar {
    private Foo foo = new Foo();
}

¿Es posible en Fooclase para obtener la clase de footerreno. Es decir, yo quiero en Fooconseguir Barclase. La pregunta es, por supuesto, sobre la reflexión, pero no sobre new Foo(Bar.class).

John Kuhn:

Si desea obtener las llamadas del grupo, puede utilizar la nueva norma (introducido en Java 9) StackWalkerAPI:

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();
}

Si utiliza una versión anterior de Java, está el no soportado sun.reflect.Reflection.getCallerClass().

Supongo que te gusta

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