seters 和 getter 提示我一个"Java cannot find symbol error",使代码无法通过我的学习平台的测试



赋值如下:创建一个名为Salesperson的类。Salesperson的数据字段包括一个整数ID号和一个双年度销售额。方法包括一个构造函数,该构造函数需要两个数据字段的值,以及每个数据字段的get和set方法。编写一个名为DemoSalesperson的应用程序,声明一个由10个Salesperson对象组成的数组。将每个ID号设置为9999,将每个销售值设置为零。显示10个销售人员对象。

salesperm.java:

public class Salesperson {
int ID;
double sales;


public Salesperson(int iDnumber, double sales) {
this.ID = iDnumber;
this.sales = sales;
}

public void setID(int iDnumber) {
this.ID = iDnumber;
}
public void setSales(double sales) {
this.sales = sales;
}   
public int getID() {
return ID;
}
public double getSales() {
return sales;
}
}

DemoSalesPers.java:


public class DemoSalesperson {
public static void main(String[] args) {
Salesperson[] salesperson = new Salesperson[12];
//creates 12 salespeople and sets their id to 9999 and sales to 0

for (int i = 0; i < 12; ++i){
salesperson[i] = new Salesperson(9999, 0);
}

for (int i = 0; i < 12; ++i){
System.out.println(salesperson[i].getID() + ", " + salesperson[i].getSales());
}

}
}

代码正常工作,但是,当在Salesperson类中定义setId和getId时,平台会向我抛出这些错误:

NtTestcda27358.java:8: error: cannot find symbol
salesperson.setId(101);
^
symbol:   method setId(int)
location: variable salesperson of type Salesperson
NtTestcda27358.java:9: error: cannot find symbol
assertEquals(salesperson.getId(), 101);
^
symbol:   method getId()
location: variable salesperson of type Salesperson
NtTestcda27358.java:10: error: cannot find symbol
salesperson.setId(1009);
^
symbol:   method setId(int)
location: variable salesperson of type Salesperson
NtTestcda27358.java:11: error: cannot find symbol
assertEquals(salesperson.getId(), 1009);
^
symbol:   method getId()
location: variable salesperson of type Salesperson
4 errors
Test Contents
@Test
public void unitTest() {
Salesperson salesperson = new Salesperson(999, 0.0);
salesperson.setId(101);
assertEquals(salesperson.getId(), 101);
salesperson.setId(1009);
assertEquals(salesperson.getId(), 1009);
}

同样在定义Salesperson类的构造函数和get方法时:

NtTest427994f5.java:8: error: cannot find symbol
assertEquals(salesperson.getId(), 997);
^
symbol:   method getId()
location: variable salesperson of type Salesperson
NtTest427994f5.java:11: error: cannot find symbol
assertEquals(salesperson2.getId(), 78);
^
symbol:   method getId()
location: variable salesperson2 of type Salesperson
2 errors
Test Contents
@Test
public void unitTest() {
Salesperson salesperson = new Salesperson(997, 56.87);
assertEquals(salesperson.getId(), 997);
assertEquals(salesperson.getSales(), 56.87, 1e-15);
Salesperson salesperson2 = new Salesperson(78, 1001.34);
assertEquals(salesperson2.getId(), 78);
assertEquals(salesperson2.getSales(), 1001.34, 1e-15);
}

如何修复这些错误以及如何避免这些错误?

您提供了方法getID()setID(),但测试需要名为getId()setId()的方法。这与期望销售人员ID的字段将命名为id,而不是ID有关,这与强大的、广泛使用的Java约定一致,即实例变量将使用首字母小写字母命名。

最新更新