Rule: Lambdas should be replaced with method references (java:S1612)
Applying suggestion to replace lambda on Integer conversion to String with method reference causes invalid code.
Original code:
Collection<Integer> idList;
// here we initialize collection
System.out.println(
idList
.stream()
.map(i -> i.toString())
.collect(Collectors.joining(", "))
);
Suggestion:
Replace this lambda with method reference ‘Integer::toString’.
Code after suggestion:
System.out.println(
idList
.stream()
.map(Integer::toString)
.collect(Collectors.joining(", "))
);
Error after code modified:
Ambiguous method reference: both toString() and toString(int) from the type Integer are eligible
P.S. System.out.println() is here just for example, I do not use it in code for real
Before applying suggestion:
After suggestion applied: