我遇到了一个问题,当我在 Eclipse 中打开项目时,跨包的类的可见性有问题。
例子:
package.a
- public abstract class clazz
package.b
- public abstract class clazzy extends clazz
在上面的例子中, clazzy 会有一个错误,其中 clazz 不可用。如果我将 clazzy 移入 package.a,然后将其移回 package.b,一切都很好,但否则我无法让 eclipse 识别 clazz 根本存在。
编辑1:
是的,我正在导入课程。我也按 ctrl-shift-o(导入)。如果我手动输入导入,eclipse 仍然无法识别 clazz 存在。我没有尝试导入整个包,因为通常出于各种原因我避免这样做。
编辑2:
当我第一次使用以下导入打开项目(它可能已经存在于工作区中)时:
import package.a.Clazz;
public abstract clazzy extends Clazz {
...
}
导入和 clazz 标识符都将带有红色下划线。
我收到了几个建议:
import package.a;
这不仅不能解决问题,而且出于各种 pf 原因,我也不想这样做。
编辑3:
我应该澄清一下,当我在第二段中说“移动”时,我的意思是如果我将 package.b.clazzy 移动到另一个包(比如 package.a 或 package.c)中,eclipse 似乎意识到它很愚蠢并自行排序出去。如果我然后将 clazzy 移回 package.b,那么从那时起一切都很好。
从那时起,此代码编译并正确运行。