【发布时间】:2012-10-12 20:25:54
【问题描述】:
可能重复:
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...
}
}
【问题讨论】:
-
不,除了一次捕获多个异常之外,你什么也做不了。
-
@JB 为什么?他们要多久才能完成? :)
-
因为第一个将 Java 转换为松散类型的语言(这永远不会发生),而第二个尚未考虑,甚至没有提交给项目代币。如果您希望这样的事情发生,请提交 RFE,但恕我直言,这会使语言更加臃肿而没有任何显着优势。
-
没有松散的类型。最具体的共同祖先,就像例外一样。
-
然后直接将变量声明为
Object。
标签: java oop interface java-7 unions