NetBeans 在同一项目中找不到指定的 class

NetBeans cannot find a specified class within the same project

我正在做一个 Java 动手练习,我 运行 解决了这个问题,出于某种原因,每当我尝试调用 ItemTaxCalculator class 在我的 Java 测试文件中

这是 ItemTaxCalculator class

package com.mycompany.taxcalculator;

public class ItemTaxCalculator {
    public double CalculateItemTax(double itemPrice, double taxPercent){
        double decrease = taxPercent/10.0;
        return itemPrice * decrease;
    }
}

这是 ItemTaxCalculatorTest.java

package taxcalculator;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;



public class ItemTaxCalculatorTest {
    
    
    public ItemTaxCalculatorTest() {
    }

    @Test
    public void testCalculateItemTax(){
        System.out.println("CalculateItemTax method");
        ItemTaxCalculator instance = new ItemTaxCalculator();
        double itemPrice = 50.0;
        double taxPercent = 1.0;
        double expectedResult = 5.0;
        
        double result = instance.CalculateItemTax(itemPrice, taxPercent);
        assertEquals(expectedResult, result, 0.0);
    }
   

}

错误发生在 ItemTaxCalculator instance - new ItemTaxCalculator();行。

一条错误消息出现: 找不到标志 符号:class ItemTaxCalculator 位置:class ItemTaxCalculatorTest

我似乎找不到这个问题的答案,这是唯一阻碍我 运行 代码的事情。我希望我能找到一些帮助,干杯!

您的问题与 netbeans 无关。

您的原始 class 在包裹中:

package com.mycompany.taxcalculator;

当你的测试在包中时:

package taxcalculator;

测试将能够按原样编译和执行,但前提是两个 classes 在同一个包中。

因此,有两种方法可以解决您的问题。

  1. 把你的class放在同一个包里 只需更改您的一个包裹声明,使其与另一个包裹声明相匹配。

  2. 在您的测试中添加导入语句class

    导入com.mycompany.taxcalculator.ItemTaxCalculator;

执行此操作后,将找到 class 并可以对其进行实例化。