gpt4 book ai didi

java - 如何在 Java 中包含上述目录中的文件?

转载 作者:行者123 更新时间:2023-11-29 06:03:49 24 4
gpt4 key购买 nike

我不确定如何从上面的目录导入文件。也就是说,我有这样的设置

directory: MyProject
Main.java
directory: Other
Other.java

基本上,Main.java 位于“MyProject”中,Other.java 位于项目根文件夹内的文件夹中。我可以轻松做到

import Other.*;

让这些文件在 Main 中可用,但我如何让 Main.java 对 Other.java 可见?

import ../Main.java

显然这行不通,但这是我正在寻找的一般功能。有什么建议么?我宁愿不必使用绝对路径。谢谢!

编辑:我的意思是导入不包括。对不起。过度使用 C++。

最佳答案

Java 不包含文件。但是,您可以通过import 语句直接使用使用简单 名称的类。

基本上,您定义的每个(顶级)类都需要一个文件。这允许 IDE 重命名编译单元,并进行其他重构。除此之外,它还可以让您轻松地在正确的位置添加代码。

Java 确实使用包来创建命名空间。包本身是完全独立的命名空间。虽然 namespace 看起来是一个树形结构,但在 Java 中每个包实际上与任何其他包都不相关。因此您不能将它用作文件夹结构,使用 .. 是不允许的。一旦引入“ super 包”,这可能会改变。

Java import 语句看起来很像 #include,但名称更改是有意的:它不是抓取文件以使该文件中的定义为人所知,而是只是一个声明,可以更容易地引用类和接口(interface)。除了使类的名称更短(或者,对于 import static、常量和其他 static 成员),它没有其他效果。

大多数情况下,顶级类使用反射(reflect)包名称的文件夹结构来表示。这使得 IDE 和开发人员可以轻松找到代表该类的文件。它还可以很容易地进行版本控制。然而,它不是 Java 规范本身的一部分;未定义 Java 源代码和类的位置。例如,早期的 IBM IDE 实际上将 Java 源代码和类存储在数据库中;他们根本不使用文件。较新的 IDE(例如 Eclipse)可能使用不同的源文件夹,例如一个用于单元测试文件,一个用于库本身。

所以最后,包含包的唯一方法是指定完整的包名称,然后是一个点,然后是要导入的类,或者 * 通配符 来导入该包的所有类。

import java.util.Vector;
import java.util.*;

大多数 IDE 会为您创建这些导入语句,可能是在您选择了要导入的正确类之后(以防不同包中存在同名类)。


更多信息可以在 Java Language Specification (Java 7 version) 中找到.

在您的情况下,您已经在根目录或默认包 中定义了一个 Main 类,强烈建议不要这样做。您可以直接引用 Main 而无需任何 import 语句。 Other 类位于同名的 Other 包中(强烈建议不要在包名中使用大写字母)。您可以使用 import Other.Other 来引用它。

关于java - 如何在 Java 中包含上述目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9202680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com