您上一个代码段中的问题是编译器无法猜测
() -> { // pre omitted return null;}
是实现
Supplier接口SAM的lambda表达式(似乎您首先错过了表达式的括号,但无论如何)。
您可以做的是强制转换lambda,以告知编译器这实际上
Supplier是您实现的接口的抽象方法:
private ConnectionFactory connectionFactory = ((Supplier<ConnectionFactory>)() -> { // pre omitted return null; }).get();
但是,那您将获得什么而不是拥有一个初始化器呢?
private ConnectionFactory connectionFactory;{ //pre omitted connectionFactory = null;}
或在构造函数中或使用final方法初始化连接:
private ConnectionFactory connectionFactory = initConnection();private final ConnectionFactory initConnection() { //pre omitted return null;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)