我正在编写一个 Android 应用程序并使用net.sourceforge.streamsupport:streamsupport:1.5.5
我正在使用带有嵌入式 JDK 的 Android Studio 2.3.3,源和目标兼容性设置为 1.8。
现在我有一个方法引用Light::getColor
,当被调用时,它调用了错误的方法 ( Light::getMaxColorTemperature
)。
return StreamSupport.stream(lights)
.filter(light -> light.getColorMode().ordinal() >= ColorMode.HUE_SATURATION.ordinal()
.findFirst()
.map(Light::getColor)
.orElse(Color.WHITE);
如果我使用 lambda 表达式代替 ( light -> light.getColor()
),则调用正确的方法:
return StreamSupport.stream(lights)
.filter(light -> light.getColorMode().ordinal() >= ColorMode.HUE_SATURATION.ordinal()
.findFirst()
.map(light -> light.getColor())
.orElse(Color.WHITE);
重新编译整个项目并没有改变任何东西。有没有人见过这个?我不确定这是流支持问题还是 Android 编译器问题,以及如何弄清楚。