日期:2014-05-20  浏览次数:20633 次

调用接口的继承类,编译时是不是不能使这些继承类得到编译?
问题是这样的,
一个类A调用了一个接口Common,放在包pk1.pk2内
Comman有继承类B,放在包pk1内
A中相关的语句为:Common   cn   =   (Common)Class.forName( "pk1.B ").newInstance();
                                  cn.B中的方法;

但是编译完A之后,却发现B没有得到编译,且系统显示找不到类pk1.B

后来,我想办法在A中直接调用B,将B编译成class文件之后,程序才找到了pk1.B,得以运行正常。

也就是说,以这种方法不能使这些继承类得到编译,为什么呢?
(本来我的目的是使继承类与类A和接口Common分离,以后再增加继承类,不需要更改A和Common)

------解决方案--------------------
你B对象里面是不是又调用A了?循环调用会这个样子,这是不正确的
------解决方案--------------------
先编译B,再编译A,B编译不了与你的编译设置有关,楼主是如何编译的?
------解决方案--------------------
因为你这里用的是Class.forName().