class A{
 B b=new B();
 public get(){
   b.test();
 }
}
class B{
 public String get(){
  return ();//返回引用该B实例的、A的实例,或者A的Class对象
 }
}也就是说怎么才能知道B被谁引用了,这里是A。

解决方案 »

  1.   

    从理论上来讲, 这在程序中是不能实现的. 因为要知道被谁引用, 这是只有运行时(Runtime)阶段才知道的, 在编译(compile)阶段肯定是不知道的.... 所以在代码中不能实现. 可以通过一些JAVA分析工具知道对象之间的引用关系, 比如jprob, jprofile, optimizite
      

  2.   

    非常不明白,你为什么要搞这个。
    如果说有方法的话,那肯定是这样:
    class B{
    Object o;
    public B(Object obj){
        o = obj;
    }
    public Object get(){
      return o;//返回引用该B实例的、A的实例,或者A的Class对象
    }

    比如你在A中调用B的get方法,那返回的肯定就是A的当前实例,也就是this了。既然知道是this了,为什么还要去调用get方法呢?
      

  3.   

    不知道我理解的对不对....用用Java反射机制,将每个类中的Field[]得到之后,判断这些域的Class类型应该就能解决。
      

  4.   

    这个还真没考虑过。MARK,期待牛人解答。
      

  5.   


    我现在是要在B的方法中得到A。因为还有可能有另外一个class C 中有 Bb=newB()这是 B中就应该返回C啦。