download original
interface Func {
public int run(int param);
}
public class closures3 {
public static Func accum(int start) {
final int[] curr = {start};
return new Func() {
public int run(int param) {
curr[0] += param;
return curr[0];
}
};
}
public static void main(String[] args) {
Func acc1 = accum(0);
System.out.println("a1 "+acc1.run(3));
System.out.println("a1 "+acc1.run(5));
Func acc2 = accum(10);
System.out.println("a2 "+acc2.run(1));
System.out.println("a1 "+acc1.run(2));
System.out.println("a2 "+acc2.run(7));
System.out.println("a1 "+acc1.run(10));
System.out.println("a2 "+acc2.run(4));
}
}
back to test
(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>