我有一个加载属性文件的 InputStream。通常我使用properties.load(is);但我想将它更改为 Consumer 因为我想避免使用 catches 所以我创建了一个避免 id 的 ThrowingConsumer,但问题是即使我使用普通的 Consumer 它似乎在我声明时工作一个 InputStream,但我的 ThrowingConsumer 是通用的,所以它看起来像那样
@FunctionalInterface
public interface ThrowingConsumer<T, E extends Throwable>
{
void accept(T t) throws E;
static <T, E extends Throwable> Consumer<T> unchecked(ThrowingConsumer<T, E> consumer)
{
return t ->
{
try
{
consumer.accept(t);
}
catch (Throwable e)
{
throw new UnsupportedOperationException(e);
}
};
}
}
当我使用ThrowingConsumer.unchecked(properties::load).accept(is);它时,它尖叫着无法解析方法加载。我怎么能避免呢?
慕盖茨4494581
相关分类