java - java包如何同时以其路径和文件夹名称命名?
问题描述
我创建了一个具有 Maven 目录结构的项目,并创建了一个名为machine
.src/main/java/machine
在类源文件src/main/java/machine/MyClass.java
中,我在文件顶部定义了如下包:
package main.java.machine;
但是,当我尝试使用语句编译包外部的 Main.java 文件时
import main.java.machine.MyClass;
当我尝试从 MyClass 实例化对象时,出现编译错误“找不到符号”。
我不明白如何在它们的目录路径之后遵循命名包的命名约定,同时在封闭文件夹之后命名它们(在我的情况下,这将是package machine;
有效的)。
我尝试在一个真正的 Maven 项目中使用 IntelliJ IDEA 做同样的事情,IDE 提示我创建一个带有名称的新包文件夹,或者在 MyClass.java 文件顶部的语句java.machine.MyClass
中将包重命名为。machine
非常感谢
解决方案
Maven的默认源文件夹是src/main/java/
,因此您的所有包都必须包含在该文件夹中。相反,与测试相关的一项应包含在src/main/test
.
例如,在您的情况下,如果您创建了包机器,则该包下的类必须具有以下语句:
package machine;
相反,所有想要导入机器包内的类的类都将以这种方式导入它:
import machine;
但是,作为最佳实践,请尝试以“域”开头的包名称,然后是您的项目名称,然后您可以根据自己的目的区分每个包。例如,一个经典的包可以是com.myproject.machine
推荐阅读
- android-studio - okHttp3 newCall的参数不匹配类型请求
- python - Numpy:从字典中展平多个不同形状的数组
- r - 如何在一年中的几个月的 y 轴上生成多条线的媒体图
- docker-compose - 在 dokcer-compose.yml 文件中松散地绑定 Terraform 版本
- php - 如何在 Symfony 5 中使用 vich 上传器上传多个文件
- python - 使用 TimestampedGeoJson 和 Folium 绘制数据框不显示点
- matlab - 如何在 Matlab 中打印出哈希表?
- javascript - 如何在典型的编程语言中使用逗号符号表示这个向量代数以进行 2d 点计算?
- amazon-web-services - 异步调用 lambda 函数
- reactjs - 尝试导入错误:未从“react-spring”导出“动画”