【发布时间】:2015-12-23 15:05:01
【问题描述】:
很抱歉这个问题可能很奇怪,但前段时间我使用了 python 的内省,我想知道 Java 1.8 中是否有类似的东西。
假设我在这种情况下有一个来自 A 类的对象 a
class A{ B b; }
class B{ public void f(){} }
我的问题是“f() 可以知道a 吗?”
显然,如果我添加一个反向链接,它可以:
class A {
B b;
public A() { b = new B(this); }
}
class B {
A father;
public B(A a){ this.father = a; }
public void f(){}
}
但我的问题是,在一般情况下,没有像father 这样的背面,是否有任何内省机制可以让f() 了解a?
【问题讨论】:
-
A a = new A; B b2 = a.b;现在你会期待什么结果? -
为什么需要这种场景
-
简短回答:不。长答案:noooo。
-
A和B没有任何共同之处。你想让f知道一个与它所在的类无关的类的什么? -
即使有可能,您如何确切知道拥有
B实例的A的多个潜在实例中的哪一个是您想要的?可能有很多。
标签: java introspection