我有两个包裹。第一个包含一个空接口和一个在单个文件中实现它的类(" IThing"和#34; Thing")。第二个接口包含另一个接口(" IThingUser"),它有一个返回类型" Thing"的对象的函数。
当两个文件都是同一个包的一部分时,一切正常,但如果它们在两个独立的包中,则package2中的那个不能访问第一个包中定义的类。
Package1包含以下文件:
package project.package1;
public interface IThing {
}
final class Thing implements IThing {
private int thingField;
public int thingFieldGetter(){
return thingField;
}
}
package2有:
package project.package2;
import project.package1.IThing;
public interface IThingUser {
public IThing someFunction(); // Works fine
public Thing anotherFunction();
// "Thing" is not recognized when the two files are in separate packages.
}
为什么会这样?有没有办法在保持这种架构的同时解决这个问题?
PS:我知道这种结构没有多大意义,但我没有编写package1代码,我必须按原样使用它。
答案 0 :(得分:2)
问题是project.package1.Thing
在包 project.package1
之外不可见,但公共类必须在自己的中定义文件强>
答案 1 :(得分:0)
类Thing
具有包私有可见性。您将无法在project.package1
包裹之外访问它,直到它将被实现为
public final class Thing implements IThing