有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

即使包含包,java Maven也找不到类

我有以下代码:

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时,我得到:

cannot find symbol class RegexValidator

为什么找不到这门课?这是一个问题吗


共 (2) 个答案

  1. # 1 楼答案

    您应该将DomainValidatorTest.java移动到目录: src/test/java/osu/cs362/URLValidator

    目录结构应与java包相同

  2. # 2 楼答案

    这不是一个专业问题

    如果RegexValidator类具有如下声明:

    package osu.cs362.URLValidator;
    public class RegexValidator {
    ...
    }
    

    你不会有问题的。所以我想情况并非如此
    此外,文件系统文件夹不是Java包

    例如,没有人阻止您在文件夹中声明类: osu/cs362类路径文件夹,并这样声明类的包:fictive.folder
    该类将编译

    这就是DomainValidatorTest的情况。包与文件夹布局不对称,但类由编译器找到,并且不会导致编译错误。

    但当然,这是一种不好的做法,具有误导性。这就是为什么包应该始终与文件夹布局对称