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

mrs*_*mrs 0 java lambda method-reference

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

lambda表达式:

intervalCodes.stream().forEach(code -> {
            modProfile.addIntervalUsageCode(createIntervalCode(code));
          });
Run Code Online (Sandbox Code Playgroud)

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

intervalCodes.stream().forEach(modProfile::addIntervalUsageCode(createIntervalCode));
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

shm*_*sel 5

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

intervalCodes.stream()
        .map(this::createIntervalCode)
        .forEach(modProfile::addIntervalUsageCode);
Run Code Online (Sandbox Code Playgroud)

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