员工类, 有姓名, 年龄, 薪水三个成员属性需要私有并提供get, set方法, 可以通过构造函数进行初始化,并且按照薪水排序 自己刚写的,请问还有哪里错的吗?还有就是 return st.salary - this.salary;这一句报错 请问是什么问题?
错误是
The operator - is undefined for the argument type(s) java.lang.String, java.lang.String
看了下 貌似是参数未定义,请问怎样修改 谢谢!public class staff implements Comparable {
private String name;
private int age;
private String salary; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getSalary() {
return salary;
} public void setSalary(String salary) {
this.salary = salary;
} @Override
public int compareTo(Object obj) {
if (obj instanceof staff) {
staff st = (staff) obj;
return st.salary - this.salary;
}
return -1;
}
}
错误是
The operator - is undefined for the argument type(s) java.lang.String, java.lang.String
看了下 貌似是参数未定义,请问怎样修改 谢谢!public class staff implements Comparable {
private String name;
private int age;
private String salary; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public String getSalary() {
return salary;
} public void setSalary(String salary) {
this.salary = salary;
} @Override
public int compareTo(Object obj) {
if (obj instanceof staff) {
staff st = (staff) obj;
return st.salary - this.salary;
}
return -1;
}
}
把salary改成double类型//private String salary;
private double salary; //public String getSalary() {
public double getSalary() {
return salary;
} //public void setSalary(String salary) {
public void setSalary(double salary) {
this.salary = salary;
}当然,如果不想改salary的类型,那么就自己把String转换为数值类型再进行 - 处理即
return Double.valueOf(st.salary) - Double.valueOf(this.salary);但是,常规设计来说,salary不应该是String类型的,而应该是数值类型
谢谢 原来是粗心问题哎....
我改了 但问题又出来了 重写以后用double类型还是报错是什么原因?
public double compareTo(Object obj) {
if (obj instanceof staff) {
staff st = (staff) obj;
return st.salary - this.salary;
}
return -1;
}
public int compareTo(Object obj) { //返回值要改成int
if (obj instanceof staff) {
staff st = (staff) obj;
return (st.salary > this.salary ? 1 : (st.salary < this.salary ? -1 : 0));
}
return -1;
}