if语句系列不返回int值(Java)

big*_*cts 2 java if-statement

我想使用三个变量(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)

Ell*_*sch 8

我希望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)