有三个类D1,D2,D3。在D1中创建D2,D3的实例d2,d3。在D3中怎么获得D1中的D2实例。
目前我是这样做的:
  在D3中创建D2的实例d2,并写setD2(D2 d){this.d2 = d;}
  然后在D1中用d3.setD2(d2);
希望能精简掉D1中的代码。
在D3中用this.getParent()返回null。

解决方案 »

  1.   

    没有办法的。只有这样。
    public class D1{
       private D2 d2;
       private D3 d3;
       
       public D1(){
           d3 = new D3(d1);
       }
       
       public d2 getD2(){
           return D2;
       } 
    }public class D3(){
        private D1 d1;
        
        public D3(D1 d1){
            this.d1 = d1;
        }
        
        public void dealSomething(){
            // call method in d1;
            d1.getD2();// call method in d2;
        }}
      

  2.   

    mofeir(莫飞)的方法很好,一般是这样处理。
      

  3.   

    mofeir(莫飞)的方法很好,一般是这样处理。