我知道如何创建对具有String参数并返回的方法的引用int,它是:
String
int
Function<String, Integer>
但是,如果函数抛出异常,这将不起作用,例如定义为:
Integer myMethod(String s) throws IOException
我将如何定义这个参考?
您需要执行以下操作之一。
@FunctionalInterface
public interface CheckedFunction { R apply(T t) throws IOException; }
并使用它:
void foo (CheckedFunction f) { ... }
Integer myMethod(String s)
public Integer myWrappedMethod(String s) { try { return myMethod(s); } catch(IOException e) { throw new UncheckedIOException(e); }
}
然后:
Function<String, Integer> f = (String t) -> myWrappedMethod(t);
要么:
Function<String, Integer> f = (String t) -> { try { return myMethod(t); } catch(IOException e) { throw new UncheckedIOException(e); } };