Класс Customer использует инжекцию конструктора (рекомендуется для внедрения через поле), но поле экземпляра нельзя использовать внутри лямбда-выражения.
@Component
public class Customer {
private final Account account;
@Autowired
public Customer(final Account account) {
this.account = account;
}
// Works perfectly fine
Callable propCallable = new Callable<String>(){
@Override
public String call() throws Exception {
return account.accountId();
}
};
//Shows warning : Variable account might not have been initialized
Callable lambdaCallable = () -> {
return account.accountId();
};
}
Мне просто интересно узнать, есть ли лучший способ использовать переменную экземпляра внутри лямбда-выражения, а не анонимный класс?
Примечание: Iпредпочитаю вести учет как окончательный.
Заранее спасибо