当前位置: 首页 > 面试题库 >

Java 如何从默认包中导入类

谢奇略
2023-03-14
问题内容

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

Calculations.java-源代码

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

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


问题答案:

根据Java语言规范:

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

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



 类似资料:
  • 问题内容: 我在Entities程序包中有类,但是我仍然想运行默认程序包中的导入内容…我该怎么做? 问题答案: 你不知道 抱歉。 尽管我引用了另一个答案,但是您可以查看ORACLE参考,该参考指出了预期的行为。 我建议将您的东西移动到命名包中。 如果您绝对不能重构,则可以尝试使用反射来访问它。再次,检查上面链接的答案。

  • 我当前的系统(MacOS 10.10.5)配置是: 每次我开始处理一个项目(目前为1.8.0_65)并使用 = 引入的默认导入语句是 虽然我希望它是: 是否有任何配置我可以纠正,或者这是我使用的组合中的一些错误?想知道是什么设置优先于sun包而不是java包? 注意:是否已经回答了像在Eclipse中一样在IntelliJ IDEA中自动导入类的任何方法(或快捷方式)?但是当我键入时得到的选项不包

  • 我试图通过在中定义一个静态方法来缩短。我想利用进一步缩短为的util.print()。所以我做了一个静态导入。 java与listofnumbers.java位于同一目录下。当我试图从一个tester类访问writeList()时,我得到以下错误: 错误:

  • 问题内容: 我现在正在与其他人一起在grails项目中工作。我必须编写一些Java类。但是我需要访问使用groovy创建的可搜索对象。看来,该对象必须放在默认包中。 问题答案: 在J2SE 1.4之前,你可以使用以下语法从默认包中导入类: 这是不再允许。因此,要从打包的类中访问默认的包类,需要将默认的包类移动到自己的包中。 如果你可以访问groovy生成的源,则需要进行一些后期处理,以将文件移动到

  • 模块“Transformer”解析为非模块实体,不能使用此构造导入。 如何导入类?其实我只是想利用那堂课。我不希望指令在我的代码中产生附带效应。我只想用它:'(

  • 我编写了一个小的java程序,在Windows8中使用NetBeans读取文件并进行字符串匹配。但当我在ubuntu上使用terminal编译时,出现了以下消息。在ubuntu中是否有缺省的包,用于错误中的以下包。