0

Why does this code not compile?

package com.heather;

import java.util.function.IntSupplier;
import java.util.stream.IntStream;

public class MainClass {

    public static void main(String[] args) {
        class IntSupplierImpl implements IntSupplier {
            int current = 0;
            @Override
            public int getAsInt() {
                return current++;
            }

        }

        //This doesn't work.
        int sum = IntStream.generate(IntSupplierImpl::new).limit(1000).filter(i -> i % 3 == 0 || i % 5 == 0).sum();
        System.out.println(sum);

        //This does work. 
        int sum2 = IntStream.generate(new IntSupplierImpl()).limit(1000).filter(i -> i % 3 == 0 || i % 5 == 0).sum();
        System.out.println(sum2);
    }

}
tafoo85
  • 869
  • 8
  • 12

0 Answers0