【发布时间】:2021-11-09 17:48:12
【问题描述】:
不确定第 24 行出了什么问题。我正在尝试重写 Object.equals() 方法,但由于该方法采用 Object 类型,我想过滤掉不是 Employee 实例的输入。这是一个java入门课程
我收到以下错误:
4 errors found:
File: /Users/wesley/Documents/Employee.java [line: 24]
Error: ')' expected
File: /Users/wesley/Documents/Employee.java [line: 24]
Error: variable declaration not allowed here
File: /Users/wesley/Documents/Employee.java [line: 24]
Error: ';' expected
File: /Users/wesley/Documents/Employee.java [line: 30]
Error: 'else' without 'if'
这是代码。
//employee number, name, and salary
public class Employee{
private String name;
private final int ID;
private double salary;
private static int lastID;
public Employee(String name, double salary){
this.name=name;
ID=Employee.lastID+1;
this.salary=salary;
Employee.lastID=Employee.lastID+1;
}
public String getName(){return name;}
public int getID(){ return ID; }
public double getSalary(){ return salary;}
public void setName(String newName){name=newName;}
public void raise(double newSalary){ salary=newSalary;}
@Override
public String toString(){
return "Name: "+ getName() + "\nID: " + getID() + "\nSalary: " + getSalary();
}
@Override
public boolean equals(Object o){
if(o instanceOf Employee){//errors are here!
Employee input=(Employee) o;
if(this.getSalary()==input.getSalary() && this.getName().equals(input.getName())){
return true;
}
}
else{return false;
}//another error here
}
}
懒得修复缩进。刚刚在我粘贴东西时发生了
【问题讨论】:
-
欢迎来到 SO,问题是没有名为
instanceOf的操作数它被称为instanceof。作为旁注,我会将 if 条件翻转为if (!(o instanceof Employee)) { return false },您不需要else子句,它会使事情更容易阅读。
标签: java equals instanceof