我想知道如何改变sum()-〉reduce(0,Integer::sum)是java原生代码吗??所以我找不到实现的地方?
tp5buhyn1#
IntStream
IntStream#sum定义在IntStream接口上,作为interface,在那里没有实现。
IntStream#sum
IntPipeline.java
在为OpenJDK项目查找GitHub repository时,我发现Java的特定实现在IntPipeline类中实现了IntStream。请参阅源代码。注意,IntPipeline * 不是 * JavaAPI的一部分;该类是OpenJDK的实现细节。
IntPipeline
@Override public final int sum() { return reduce(0, Integer::sum); }
从那里你可以跟随调用链到reduce,如果你真的好奇的话。
reduce
1条答案
按热度按时间tp5buhyn1#
IntStream
是一个接口IntStream#sum
定义在IntStream
接口上,作为interface,在那里没有实现。IntPipeline.java
在为OpenJDK项目查找GitHub repository时,我发现Java的特定实现在
IntPipeline
类中实现了IntStream
。请参阅源代码。注意,IntPipeline
* 不是 * JavaAPI的一部分;该类是OpenJDK的实现细节。从那里你可以跟随调用链到
reduce
,如果你真的好奇的话。