Предполагая, что ваш logger
является java.util.logging.Logger
. , .
Согласно Javadoc для Logger.info
, он ожидает Supplier<String>
, а вы даете ему Supplier<Double>
.
Чтобы это исправить, нужно дать ему Supplier<String>
. Вы можете написать один из них так:
final Supplier<String> randomSupplier =
new Supplier<String>() {
public String get() {
return Double.toString(Math.random());
}
};
или как это:
final Supplier<String> randomSupplier =
() -> Double.toString(Math.random());
Вы даже можете написать:
logger.info(() -> Double.toString(Math.random()));
и Java будет магическим образом выводить, что ваша лямбда должна быть Supplier<String>
(потому что другая перегрузка info
не принимает функциональный тип интерфейса).