最佳答案
我如何从Java 8流/lambdas内部抛出CHECKED异常?
换句话说,我想让代码像这样编译:
public List<Class> getClasses() throws ClassNotFoundException {
List<Class> classes =
Stream.of("java.lang.Object", "java.lang.Integer", "java.lang.String")
.map(className -> Class.forName(className))
.collect(Collectors.toList());
return classes;
}
这段代码不能编译,因为上面的Class.forName()
方法抛出了ClassNotFoundException
,该方法被检查。
请注意,我不想将已检查异常包装在运行时异常中,并抛出已包装的未检查异常。我想要抛出受控异常本身,并且不需要向流中添加丑陋的try
/catches
。