Error
Lambda expression's signature does not match the signature of the functional interface method compare(Object, Object)
Error Type
Compile Time ( Java 8 )
Sample Code
Set<Integer> intSet = new HashSet<Integer>();
intSet.add(1);
intSet.add(2);
intSet.add(3);
intSet.add(4);
System.out.println(intSet.stream().collect(Collectors.maxBy(p->((Integer)p))));
Cause
maxBy method expects function interface with two arguments.
Possible Resolution
Specify function interface with two object arguments.
Set<Integer> intSet = new HashSet<Integer>();
intSet.add(1);
intSet.add(2);
intSet.add(3);
intSet.add(4);
System.out.println(intSet.stream().collect(Collectors.maxBy((x,y)->((Integer)x).compareTo((Integer)y))));
Lambda expression's signature does not match the signature of the functional interface method compare(Object, Object)
Error Type
Compile Time ( Java 8 )
Sample Code
Set<Integer> intSet = new HashSet<Integer>();
intSet.add(1);
intSet.add(2);
intSet.add(3);
intSet.add(4);
System.out.println(intSet.stream().collect(Collectors.maxBy(p->((Integer)p))));
Cause
maxBy method expects function interface with two arguments.
Possible Resolution
Specify function interface with two object arguments.
Set<Integer> intSet = new HashSet<Integer>();
intSet.add(1);
intSet.add(2);
intSet.add(3);
intSet.add(4);
System.out.println(intSet.stream().collect(Collectors.maxBy((x,y)->((Integer)x).compareTo((Integer)y))));