2017-03-16 66 views
-5

我在Java上遇到了一個可變方法的問題,數據結構出現錯誤,說明min和max無法解析爲變量。Java最小最大值方法

@Override 
public Optional <T> min(){ 
    if (Set.isEmpty()) 
     return Optional.empty(); 

    else(
      T min = Collections.min(Set); 
      return Optional.of(min); 
} 

@Override 
public Optional <T> max() { 
    if(Set.isEmpty()) 
     return Optional.empty(); 
    else (
      T max = Collections.max(Set); 
      return Optional.of(max()); 
} 
+4

此代碼不能編譯。爲什麼'else'旁邊有一個左括號? – rmlan

回答

0

最重要的是,你需要在你的else部分大括號,例如:

else { 
     T min = Collections.min(Set); 
     return Optional.of(min); 
    } 

這應該編譯。

有幾個小問題:

我建議你使用大括號在你的if部分了。

我把Set作爲一個實例變量。如果你希望其他人能夠讀取你的Java代碼(就像你想問Stack Overflow問題的人),不要使用以大寫字母開頭的變量名。特別是不要使用衆所周知的界面名稱(java.util.Set)作爲變量名稱。這會造成大量的混亂。

max方法中,在創建Optionalmax後,您得到了一對圓括號。