例如:
class A
{
   native_bayers()
   {
      class B
      {
         C  k; //定义一个类C的引用;
      }      class C
      {
         B  s; //定义一个类B的引用;
      }
   }
}

解决方案 »

  1.   

    确认可以吗? 为什么 Eclipse 报错呢
     C k; //定义一个类C的引用;
     这一句 “cannot be resolved to a type” ?? 
      

  2.   

    B s; //定义一个类B的引用;
     这句话没问题;
      

  3.   

    我感觉这会无限循环下去啊  
     B类中实例化C的时候会先实例化B 
    但是在实例化B的时候又会先实例化C 
    但是在实例化C的时候又会先实例化B
    但是在实例化B的时候又会先实例化C 
    但是在实例化C的时候又会先实例化B
    但是在实例化B的时候又会先实例化C 
    但是在实例化C的时候又会先实例化B
    ...........................................
      

  4.   

    多虑了  C k; 以及 B S; 相当于一个指针,可以互相指的。 
      

  5.   

    可以引用,但是因为这个类定义是函数执行时才存在,所以只能是后面的引用前面的:类似于:public class InnerRef {
        private void native_bayers() {
            class B {
            }
            class C {
                B s; //定义一个类B的引用;
            }
            class D {
                B x;
                C y;
            }
        }
    }
      

  6.   

    如果你不要定义成函数内的局部类,顺序就无所谓了,类似于:public class InnerRef {
        class X {
            Y y;
        }
        class Y {
            X x;
        }
    }
      

  7.   

    不能这么用的。
    你这是一个局部内部类。他的作用域和就局部变量差不多。必须要先声明再使用。
    C k; 这样的引用必须在先定义了C这个类型才能引用。
      

  8.   

    看你在哪里引用了,如果在外面引用要这样写:A.B b;A.C c;还有,new的时候要这样:A.B b = A.new.B();