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)
有什么建议吗?
假设createIntervalCode()是一个无副作用的实例方法,您可以将lambda分成两个方法引用:
intervalCodes.stream()
.map(this::createIntervalCode)
.forEach(modProfile::addIntervalUsageCode);
Run Code Online (Sandbox Code Playgroud)
如果它是静态方法,请使用ClassName::createIntervalCode.