如何在Optional.map()中使用方法引用

时间:2018-12-06 12:09:15

标签: java methods java-8 reference optional

我有一个可选的。

Optional<AssetEvent> latestEvent = ...

我想从事件内部向列表中添加一个字段(如果存在)。

latestEvent.map(event -> event.getTimestamp()).ifPresent(latestList::add);

我的IDE(Intelij)在event.getTimestamp()上显示“可以用方法引用替换Lambda”

重构为

latestEvent.map(this::getTimestamp).ifPresent(latestList::add);

给我一​​个错误,因为this将在执行代码时引用周围的对象。如何在可选latestEvent

中引用Object的方法

1 个答案:

答案 0 :(得分:6)

使用类名。例如:

latestEvent.map(AssetEvent::getTimestamp).ifPresent(latestList::add);

假设AssetEvent是具有getTimestamp方法的类的名称。