2015-10-21 54 views
-2

我正在爲學校完成一個項目,但我必須創建一個方法,該方法根據第一個字母的字母順序返回值-1,0或1名稱對象。我很困惑,爲什麼我總是得到一個錯誤,要求我提供一個返回值,也許我看不到我失蹤的東西,但任何幫助將不勝感激(我可能會在明天或後天看到助教) 。關於公共int方法返回值的困惑

public int compareTo(Name nameObject) { 
    if (middleName.equals(null)) { 
     if (getLastName().charAt(0) < nameObject.getLastName().charAt(0)) { 
      return -1; 
     } else if (getLastName().charAt(0) > nameObject.getLastName().charAt(0)) { 
      return 1; 
     } else if (getLastName().charAt(0) == (nameObject.getLastName().charAt(0))) { 
      if (getFirstName().charAt(0) < nameObject.getFirstName().charAt(0)) { 
       return -1; 
      } else if (getFirstName().charAt(0) == nameObject.getFirstName().charAt(0)) { 
       return 0; 
      } else if (getFirstName().charAt(0) > nameObject.getFirstName().charAt(0)) { 
       return 1; 
      } 
     } 
    } else { 
     if (getLastName().charAt(0) < nameObject.getLastName().charAt(0)) { 
      return -1; 
     } else if (getLastName().charAt(0) > nameObject.getLastName().charAt(0)) { 
      return 1; 
     } else if (getLastName().charAt(0) == (nameObject.getLastName().charAt(0))) { 
      if (getFirstName().charAt(0) < nameObject.getFirstName().charAt(0)) { 
       return -1; 
      } else if (getFirstName().charAt(0) > nameObject.getFirstName().charAt(0)) { 
       return 1; 
      } else if (getFirstName().charAt(0) == nameObject.getFirstName().charAt(0)) { 
       if (getMiddleName().charAt(0) < nameObject.getMiddleName().charAt(0)) { 
        return -1; 
       } else if (getMiddleName().charAt(0) == nameObject.getMiddleName().charAt(0)) { 
        return 0; 
       } else if (getMiddleName().charAt(0) > nameObject.getMiddleName().charAt(0)) { 
        return 1; 
       } 
      } 
     } 
    } 
} 

回答

0

你的「else if」行是懸掛的。例如,

} else if (getLastName().charAt(0) == (nameObject.getLastName().charAt(0))) { 

任何「如果其他人」需要遵循與「其他」 - 或者只是一個返回值 - 確保東西返回