好吧,我正在挖掘Java8 lambda,我正面临以下问题 - lambda不会改变数据:
DamnLambda.class:
public static void inc ( List<Integer> list, Funtion<Integer,Integer> func) {
for(Integer intr : list) {
intr = func.apply(intr);
}
Run Code Online (Sandbox Code Playgroud)
我们试着调用:
List<Integer> l = Arrays.asList(1,2,3);
DamnLambda.inc(l, x -> x+=1);
System.out.println(l); //[1,2,3] ? Why not [2,3,4] ?
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么它不会改变任何数据.我也尝试了不同版本的相同功能:
l.forEach(x -> x+1); //same thing, doesn't change the data.
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?