【有书共读】Java攻略 读书笔记08
supplier接口,不包含任何静态或默认方法,只有一个抽象方法T get(),为实现supplier接口,需要提供一个不传入参数且返回泛型类型的方法。
Logger logger = Logger.getLogger();
DoubleSupplier randomSupplier = new DounbleSupplier(){
//匿名内部类实现 @Override
public double getAsDouble(){
return Math.random();
}
}
randomSupplier = () -> Math.random();
randomSupplier = Math::random;//方法引用
logger.info(randomSupplier);
DoubleSupplier接口包含的单一抽象方法为getAsDouble,它返回一个double型数据。
| 接口 | 单一抽象方法 |
|---|---|
| IntSupplier | int getAsInt() |
| DoubleSupplier | double getAsDouble() |
| LongSupplier | long getAsLong() |
| BooleanSupplier | boolean getAsBoolean() |
Supplier的一个主要用例是延迟执行。java.util.logging.Logger类定义的info方法传入Supplier,仅当日志级别控制日志消息可见时,才调用get方法。
另一个用例是标准库中的java.util.Optional类定义的orElseGet方法,同样传入Supplier.
#Java##笔记##读书笔记#
