使用Java,我试图弄清楚如何在父包,公共父目录中构建子包,以及在子包之间以及包之间以相互依赖的方式导入子包的地方。
import itertools
def genSeq(item):
yield from (item*i for i in itertools.count())
/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
此处调用是在子包之间进行的(即,从packageA / subPackageA到packageA / subPackageB,反之亦然)。
CLASSPATH="$CLASSPATH:/rootdir/Test_Source/parentDir/"
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!");
}
}
由于某种原因,ClassAA无法找到ClassAB。
这里调用是跨包进行的(从packageB / subPackageA到packageC / subPackageA,反之亦然)。
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();
}
}
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!");
}
}
由于某种原因,ClassBA无法找到ClassCA。
非常感谢!
答案 0 :(得分:0)
java中没有父子包或子包的概念。
如果创建两个软件包packageA.subPackageA和packageA.subPackageB,则subPackageA和subPackageB都将位于文件系统的packageA文件夹中。 但是,对于java,packageA.subPackageA和packageA.subPackageB完全不同,并且作为父级子级,它们之间没有关联。