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.