如何将lambda表达式更改为方法引用

时间:2017-03-31 06:26:10

标签: java lambda method-reference

我需要有关将lambda表达式更改为方法引用的帮助:

lambda表达式:

intervalCodes.stream().forEach(code -> {
            modProfile.addIntervalUsageCode(createIntervalCode(code));
          });

我可以将上面的表达式更改为:

intervalCodes.stream().forEach(modProfile::addIntervalUsageCode(createIntervalCode));

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

假设createIntervalCode()是一个无副作用的实例方法,您可以将lambda拆分为两个方法引用:

intervalCodes.stream()
        .map(this::createIntervalCode)
        .forEach(modProfile::addIntervalUsageCode);

如果是静态方法,请使用ClassName::createIntervalCode