可能重复:
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...
}
}
答案 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中的其他地方并没有什么类似的东西。