[英]Java generic exceptions for callable
是否有任何方法可以获取一个类,该类显式地抛出主体抛出的(非运行时)异常?
我知道如何使用固定数量的异常来执行此操作,例如:
public interface Throw1Callable<T, E extends Exception> {
public T call() throws E;
}
这样,在调用调用时,您不必处理Exception,而只需要处理RuntimeExceptions和E。但这根本无法扩展。 如果我想针对两个异常执行此操作,则需要为Throw2Callable等创建一个新类。Java(可能包括所有语言)不提供可变数量的泛型或任何可能有用的类。
是否有封装上述内容的好方法?
编辑以澄清问题:假设Aa抛出IOException。 我想能够做((Throw1Callable)() -> Aa()).call()
并只捕获IOException而不是捕获Exception。 ((Callable)() -> Aa()).call()
将引发Exception而不是IOException。
归结为Java中无法实现的某种“ vararg”类型参数。
因此, ThrowXCallable
可能是您在这里可以做的最好的事情。 我认为“可伸缩性”在这里不是一个大问题,您可能只需要Throw5Callable
。
Java本身采用这种方法-请参见BiFunction
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.