我想使用三个变量(deptNum,firstName和lastName)比较Manager的两个对象.我已经使用一系列if和if-else语句设置了要比较的这些对象.我收到的错误是valReturn变量可能尚未初始化,我认为这意味着沿途某处的if语句未正确赋值.我不确定我犯了什么错误.
如果有更有效的方法来建立这种比较,我很乐意接受进一步的教育.
谢谢.
以下是我的代码:
public class ManagerComparator implements Comparator<Manager> {
public int compare(Manager first, Manager second) {
int valReturn;
if (first.getDeptNum() < second.getDeptNum())
valReturn = -1;
else if (first.getDeptNum() > second.getDeptNum())
valReturn = 1;
else if (first.getDeptNum() == second.getDeptNum()) {
if (first.getFirstName().compareTo(second.getFirstName()) < 0)
valReturn = -1;
else if (first.getFirstName().compareTo(second.getFirstName()) > 0)
valReturn = 1;
else if (first.getFirstName().compareTo(second.getFirstName()) == 0) {
if (first.getLastName().compareTo(second.getLastName()) < 0)
valReturn = -1;
else if (first.getLastName().compareTo(second.getLastName()) > 0)
valReturn = 1;
else if (first.getLastName().compareTo(second.getLastName()) == 0)
valReturn = 0;
}
}
return valReturn;
}
}
Run Code Online (Sandbox Code Playgroud)
我希望0通过每次增量比较进行简单的测试.随时返回每个比较的结果.喜欢,
public class ManagerComparator implements Comparator<Manager> {
public int compare(Manager first, Manager second) {
int r = Integer.compare(first.getDeptNum(), second.getDeptNum());
if (r != 0) {
return r;
}
r = first.getFirstName().compareTo(second.getFirstName());
if (r != 0) {
return r;
}
return first.getLastName().compareTo(second.getLastName());
}
}
Run Code Online (Sandbox Code Playgroud)