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