如何从默认包导入类

可能的重复:如何在默认包中访问java类?


我正在使用Eclipse 3.5,并且我已经创建了一个具有一些包结构以及默认包的项目。我在默认包中有一个类 - 计算.java并且我想在任何包中使用该类(例如在 )。当我尝试使用默认包中的类时,它会给我一个编译器错误。它无法识别默认包中的类。问题出在哪里?com.company.calc

计算.java - 源代码

public class Calculations {
    native public int Calculate(int contextId);
    native public double GetProgress(int contextId);
    static  {
        System.loadLibrary("Calc");
    }
}

我不能把我的类放在任何其他包中。此类具有一些在 Delphi 中实现的本机方法。如果我将该类放在任何文件夹中,我将不得不对要避免的DLL进行更改(真的 - 我不能)。这就是为什么我把我的类放在默认包中。


答案 1

来自 Java 语言规范

从未命名的包导入类型是编译时错误。

您必须通过反射或其他间接方法访问该类。


答案 2

默认包中的类不能由包中的类导入。这就是不应使用默认包的原因。


推荐