Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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 通过OrelsThrow方法的用户定义异常_Java_Java 8_Optional - Fatal编程技术网

Java 通过OrelsThrow方法的用户定义异常

Java 通过OrelsThrow方法的用户定义异常,java,java-8,optional,Java,Java 8,Optional,根据Java8提供的新特性,可选类是防止空指针异常的一种方法。 使用orelsetrow方法()可以在输出为null时引发异常。我想知道如何使用它抛出用户定义的异常 package com.wipro.java8; 导入java.util.Optional; 类雇员{ int-id; 字符串名; 字符串地址; 国际工资; 雇员(整数id、字符串名称、字符串地址、整数工资){ 这个.id=id; this.name=name; 这个。地址=地址; 这个。薪水=薪水; } } 类InvalidE

根据Java8提供的新特性,可选类是防止空指针异常的一种方法。 使用orelsetrow方法()可以在输出为null时引发异常。我想知道如何使用它抛出用户定义的异常

package com.wipro.java8;
导入java.util.Optional;
类雇员{
int-id;
字符串名;
字符串地址;
国际工资;
雇员(整数id、字符串名称、字符串地址、整数工资){
这个.id=id;
this.name=name;
这个。地址=地址;
这个。薪水=薪水;
}  
}
类InvalidEmployeeException扩展了异常{
/**
* 
*/
私有静态最终长serialVersionUID=1L;
INTA;
InvalidEmployeeException(内部b){
a=b;
}
公共字符串toString(){
返回(“异常编号=”+a);
}
}
公共类oc3{
公共静态void main(字符串[]args){
职员e1=新职员(0,空,空,0);
Optional n=可选的空值(e1.name);
系统输出打印(n.orelsetrow(invalideEmployeeException::new));
}
}

如果需要使用带参数的异常构造函数,请使用lambda表达式而不是方法引用

例如:

n.orElseThrow(() -> new InvalidEmployeeException(1))
(另外,我不知道传递给异常构造函数的
int
是什么意思,以及如何决定传递哪个值)

这有帮助吗
n.orelsetrow(InvalidEmployeeException::new)
此语法也很好,但需要通过引入无参数构造函数来重载构造函数。