JAVA:与不同源文件夹下存在的相同包和类名称冲突

标签 java package directory-structure classname

我面临着与在不同源下具有相同名称的类和包名称的冲突。简而言之,目录结构看起来有点像这样:

src/test/java
    com.service.helper
        Constants.java

src/intTest/java
    com.service.helper
        Constants.java
    com.service.utility
        SomethingTest.java

两个 Constants.java 中定义的几个常量字符串是相同的,并且很少是这些类独有的。 现在我在 src/intTest/java 下有一个 SomethingTest.java 文件,它应该使用在 src/intTest/java 下定义的 Constants.java。

但是,它似乎正在使用在 src/test/java 包下定义的 Constants.java 文件。因此,我无法使用 src/intTest/java 文件下的 Constants.java 中定义的常量字符串。

谁能解释清楚为什么会这样?我真的可以在不改变当前文件名的包结构的情况下访问src/intTest/java下定义的Constants.java吗?

感谢帮助。谢谢。

最佳答案

Java 类的标识 是其“绝对”名称,如x.y.z.SomeClass 中所示。当您有两个具有绝对相同 包和类名称的类时,“java”无法区分它们。

换句话说:这是不好的做法。你真的想避免这种情况。解决方案不是解决“我的工具在提示”,而是以更符合“标准 Java 约定”的方式组织您的源代码。

换句话说:最好的办法是重命名一些包,或者确保具有唯一的类名。

关于JAVA:与不同源文件夹下存在的相同包和类名称冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49126152/

相关文章:

安卓 : Impact of Uninstalling Keyboard Language Packs

java - .apk 怎么可能不包含 classes.dex 但有效?

java - 如何让 Intellij 在 spring-boot webapp 准备好后自动启动浏览器

java.lang.NumberFormatException : null error in java while generating invoice number from oracle db

php - 如何让一个 Laravel PHP 安装多个项目?

java - 现有的 Java 代码库未按目录正确构建。有没有一种工具可以将包分类到适当的目录中?

python - 迭代目录中的文件并使用文件名作为变量,并将文件路径分配给变量

java - 如何使用 JScrollPane 和 JLayeredPane 创建钢琴

python - 准备带有 Cython 扩展的包以在 PyPI 上发布

具有大尺寸外部 Assets 的 R 包