Cosa mi manca? Perché devo usare Object::toString
qui sotto e non Integer::toString
? Ha qualcosa a che fare con la cancellazione dei caratteri con i generici?Invocazione di toString tramite metodo di riferimento in Java 8
Arrays.asList(1,2,3).stream().map(Integer::toString).forEach(System.out::println); //Won't compile
Arrays.asList(1,2,3).stream().map(Object::toString).forEach(System.out::println); //Compiles and runs fine
BTW si può semplicemente scrivere 'Arrays.asList (1,2,3). forEach (System.out :: println); 'o' Stream.of (1,2,3) .forEach (System.out :: println); 'o' IntStream.rangeClosed (1, 3). forEach (Sistema. out :: println); ' –
possibile duplicato di [Come risolvere il tipo ambiguo sul riferimento al metodo Java8 (toString di un intero)] (http://stackoverflow.com/questions/21873829/how-to-fix-ambigous-type -on-java8-metodo-riferimen ce-tostring-of-an-integer) – Holger