任何其他类型的垂直条的使用?

时间:2012-10-12 20:25:54

标签: java oop interface java-7 unions

  

可能重复:
  In a Java 7 multicatch block what is the type of the caught exception?

在Java SE 7中,可以捕获多种类型的异常:

catch (IOException|SQLException ex) {
   logger.log(ex);
   throw ex;
}

这种语法还有其他用法吗?

我可以使用此语法创建联合,例如

public void main() {
    Integer|Boolean a;
    a=true;
    a=Integer.Zero;
}

或者我可以使用它来匿名派生多个接口,比如

public void main() {

    Object o = new List<Integer>|Comparable<List<Integer>>() {
        // here implementing both interfaces...
    }

}

1 个答案:

答案 0 :(得分:0)

类型是IOException和SQLException的最小上限,Exception,但是如果重新抛出异常,则确保已检查的异常列表是IOException和SQLException,而不是Exception。

有关更精确的详细信息,请参阅Java语言规范的第14.20节 - http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.20

除了选择三元运算符的类型外,Java中的其他地方并没有什么类似的东西。