Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 其他类型是否使用竖条?_Java_Oop_Interface_Java 7_Unions - Fatal编程技术网

Java 其他类型是否使用竖条?

Java 其他类型是否使用竖条?,java,oop,interface,java-7,unions,Java,Oop,Interface,Java 7,Unions,可能重复: 在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() {

可能重复:

在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...
    }

}
public void main(){
对象o=新列表|可比(){
//在这里实现两个接口。。。
}
}

该类型是IOException和SQLException,Exception的最小上限,但如果重新显示异常,则会使用特殊规则,确保选中的异常列表为IOException和SQLException,而不是Exception

有关更精确的详细信息,请参见Java语言规范第14.20节-


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

而且,不,除了一次捕获多个异常之外,你不能做任何事情。@JB为什么?他们会来多久?:)因为第一种方法会将Java转换成松散类型的语言(这是永远不会发生的),而第二种方法没有被考虑,甚至没有提交给项目。如果你希望这样的事情发生,请提交一份RFE,但是我想,这会使语言更加臃肿,没有任何明显的优势。没有松散的类型。大多数特定的公共祖先,就像例外一样。然后直接将变量声明为
Object