Java 通过OrelsThrow方法的用户定义异常
根据Java8提供的新特性,可选类是防止空指针异常的一种方法。 使用orelsetrow方法()可以在输出为null时引发异常。我想知道如何使用它抛出用户定义的异常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
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)
此语法也很好,但需要通过引入无参数构造函数来重载构造函数。