【发布时间】:2018-06-26 16:52:57
【问题描述】:
使用 java 我正在尝试研究如何在父包、公共父目录中构建子包,以及子包之间以及包之间以相互依赖的方式导入子包的位置。
目录结构
/rootdir/TestSource/parentDir/packageA/subPackageA/ClassAA.java
/rootdir/TestSource/parentDir/packageA/subPackageB/ClassAB.java
/rootdir/TestSource/parentDir/packageB/subPackageA/ClassBA.java
/rootdir/TestSource/parentDir/packageC/subPackageA/ClassCA.java
类路径
CLASSPATH="$CLASSPATH:/rootdir/Test_Source/parentDir/"
跨子包调用
这里的调用是跨子包进行的(即从 packageA/subPackageA 到 packageA/subPackageB,反之亦然)....
AA 级
package packageA.subPackageA;
import packageA.subPackageB.*;
public ClassAA
{
private ClassAB testClass;
public ClassAA()
{
}
public void sayHelloWorld()
{
System.out.println("Hello World from AA....");
testClass = new ClassAB();
testClass.sayHelloWorld();
}
public void sayGoodbyeWorld()
{
System.out.println("Goodbye World from AA!");
}
}
AB 类
package packageA.subPackageB;
import packageA.subPackageA.*;
public ClassAB
{
private ClassAA testClass;
public ClassAB()
{
}
public void sayHelloWorld()
{
System.out.println("Hello World from AB....");
testClass = new ClassAA();
testClass.sayGoodByeWorld();
}
}
由于某种原因 ClassAA 找不到 ClassAB。
跨父包调用
这里的调用是跨包进行的(从 packageB/subPackageA 到 packageC/subPackageA,反之亦然)....
BA类
package packageB.subPackageA;
import packageC.subPackageA.*;
public ClassBA
{
private ClassCA testClass;
public ClassBA()
{
}
public void sayHelloWorld()
{
System.out.println("Hello World from BA....");
testClass = new ClassCA();
testClass.sayHelloWorld();
}
public void sayGoodbyeWorld()
{
System.out.println("Goodbye World from BA!");
}
}
CA 类
package packageC.subPackageA;
import packageB.subPackageA.*;
public ClassCA
{
private ClassBA testClass;
public ClassCA()
{
}
public void sayHelloWorld()
{
System.out.println("Hello World from CA....");
testClass = new ClassBA();
testClass.sayGoodbyeWorld();
}
}
由于某种原因 ClassBA 找不到 ClassCA。
非常感谢!
【问题讨论】:
-
那么确切的问题是什么?
-
把它们都放在同一个包里,不用任何import语句就可以互相看到了。