【发布时间】:2018-08-14 00:49:43
【问题描述】:
我正面临与在不同来源下具有相同名称的类和包名称的冲突。简而言之,目录结构有点像这样:
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的角度来看:相同的包名+相同的类名=相同的类。我不知道您是否可以使用自己的自定义类加载器以某种方式解决您的问题,但我宁愿不走这条路,而是使用包+类名,因为它们打算被使用。
-
尝试使用静态导入,直接访问变量 com.service.helper.Constants.PI;
-
使用的导入已经是静态的。问题仍然存在。我只是想确保没有任何方法可以访问这些文件而不重命名它们。是的,我猜就是这样!非常感谢!
标签: java package packages directory-structure classname