我正在使用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中是否有缺省的包,用于错误中的以下包。