2017-03-16 68 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后,您得到了一对圆括号。