我有以下代码:
package osu.cs362.URLValidator;
import static org.junit.Assert.*;
import org.junit.Test;
import java.util.*;
import static org.mockito.Mockito.*;
public class DomainValidatorTest {
RegexValidator rev = mock(RegexValidator.class);
}
这包括包含
osu.cs362.URLValidator
的软件包RegexValidator
。但是,当运行
mvn test
时,我得到:找不到符号类RegexValidator
为什么找不到这个班?这是
pom.xml
问题吗? 最佳答案
这不是Maven问题。
如果RegexValidator
类具有这样的声明:
package osu.cs362.URLValidator;
public class RegexValidator {
...
}
您将不会有问题。所以我想事实并非如此。
此外,filesytem文件夹不是Java软件包。
例如,没有人阻止您在文件夹中声明类:
文件夹的
osu/cs362
,并声明类的包:fictive.folder
。该类将编译。
DomainValidatorTest
就是这种情况。程序包与文件夹布局不对称,但是编译器可以找到该类,并且不会引起编译错误。但是,当然,这是一种不好的做法,而且会产生误导。这就是为什么软件包应始终与文件夹布局对称的原因。