Я использую Spring RetryTemplate и использую этот метод. Хотел передать какой-то аргумент (вендор), он дает мне ошибку компиляции. Я могу создать другую переменную vendorName, так как final может отправить ее. Но я хочу использовать переменную vendor
. Он должен быть простым, но не получить его. пожалуйста, помогите.
public Token getToken(final String tokenId) {
String vendor = getVendor(tokenId);//returns some vendor name
RetryTemplate retryTemplate = getRetryTemplate();
Token token = retryTemplate.execute(context -> {
logger.info("Attempted {} times", context.getRetryCount());
return retrieveToken(tokenId, vendor);
});
}
private RetryTemplate getRetryTemplate() {
final FixedBackOffPolicy fixedBackOffPolicy = new FixedBackOffPolicy();
fixedBackOffPolicy.setBackOffPeriod(getRandomNumber() * 1000);
final SimpleRetryPolicy retryPolicy = new SimpleRetryPolicy();
retryPolicy.setMaxAttempts(5);
final RetryTemplate retryTemplate = new RetryTemplate();
retryTemplate.setBackOffPolicy(fixedBackOffPolicy);
retryTemplate.setRetryPolicy(retryPolicy);
return retryTemplate;
}
Ошибка компиляции: поставщик локальной переменной, определенный в включенной области видимости, должен быть окончательным или фактически окончательным