交叉引用在java里好像不行哦你去试试下面这个例子
public class Test
{
public static void main(String[] args)
{
classA a=new classA();
}
}
class classA
{
classA()
{
classB b=new classB();
b.prn();
}
public void prn()
{
System.out.println("this is a");
}
}
class classB
{
classB()
{
classA a=new classA();
a.prn();}
public void prn()
{
System.out.println("this is b");
}}

解决方案 »

  1.   

    谢谢TheTongs(有谁共鸣)。这样会产生没有结束的递归引用。但是,如果设定其中一个只设定为引用另一个,没有这种相互产生的机制,就没有问题。
    我的问题是:两个类定义在不同的文件,如何编译?我试过,如果类A开始没有引用类B,产生出A.class 后再产生B.class,再修改A使其引用B,这样就能编译过。
    javac *.java 试过了,不行。感谢 xu_yun(不应回首) 。
      

  2.   

    奇怪了,我刚刚试过没问题
    我的程序是:
    //A.java
    public class A{
      B b;
    }//B.java
    public class B{
      A a;
    }用JAVAC *.java可以编译通过呀
      

  3.   

    谢谢xu_yun,按你说的方法,问题已经解决。上次我的测试有误。