【发布时间】:2017-09-21 18:17:29
【问题描述】:
我有一个初始化类的工厂(Registry DP):
public class GenericFactory extends AbstractFactory {
public GenericPostProcessorFactory() {
factory.put("Test",
defaultSupplier(() -> new Test()));
factory.put("TestWithArgs",
defaultSupplier(() -> new TestWithArgs(2,4)));
}
}
interface Validation
Test implements Validation
TestWithArgs implements Validation
在抽象工厂中
protected Supplier<Validation> defaultSupplier(Class<? extends Validation> validationClass) {
return () -> {
try {
return validationClass.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
throw new RuntimeException("Unable to create instance of " + validationClass, e);
}
};
}
但我不断收到无法推断功能接口类型错误。我在这里做错了什么?
【问题讨论】:
-
您的 lambda 抛出并且不会在每个分支中返回的事实可能会混淆它。我似乎记得因为这个原因不得不编写自己的功能界面。
标签: java lambda java-8 registry