0

Learning Method References in java 8

public class ReferenceToStaticMethod {


    public static void main(String[] args) {
        // TODO code application logic here
        List  numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12,13,15,16);
        List primeNumbers = ReferenceToStaticMethod.findPrimeNumbers(numbers, ReferenceToStaticMethod::isPrime);

        System.out.println("Prime Numbers are "+primeNumbers);
    }

    public static boolean isPrime(int number) {
        if(number == 1 ){
            return false;
        }
        for (int i = 2; i < number; i++) {
            if (number % i == 0) {
                return false; 
            }
        }
        return true; 
    }

    public static List findPrimeNumbers(List list, Predicate predicate) {
        List sortedNumbers = new ArrayList();
        list.stream().filter((i) ->(predicate.test(i))).forEach((i) -> {
            sortedNumbers.add(i);
        });
        return sortedNumbers;

    }
}

when i compile above prog in java 8 i get below error

ReferenceToStaticMethod.java:15: error: incompatible types: invalid method reference
        List primeNumbers = ReferenceToStaticMethod.findPrimeNumbers(numbers, ReferenceToStaticMethod::isPrime);
                                                                              ^
    incompatible types: Object cannot be converted to int
Note: ReferenceToStaticMethod.java uses unchecked or unsafe operations.
M A
  • 71,713
  • 13
  • 134
  • 174
user3198603
  • 5,528
  • 13
  • 65
  • 125

0 Answers0