2017-10-10 107 views

cevap

7

, Function.identity() gibi bir şey ne ihtiyaç vardır. Eğer gerçekten bir yöntem başvuru demostrate istiyorsanız


, bir anlamsız yöntemi

class Util { 
    public static <T> T identity(T t) { return t; } 
} 

yazmak ve yöntem referans Util::identity tarafından kendisine başvurabilirsiniz:

(...).stream().collect(Collectors.toMap(Foo::getId, Util::identity)); 
+0

Çok teşekkürler, başarı olmadan bulmaya çalıştım ve yinelenen bir cevap gibi görünüyor. – user61002

6

Bir foo -> foo lambda yerine Function.identity() kullanabilirsiniz: bir yöntem referansı olmasa da Foo::this

4

bir yoktur Function.identity() ve x -> x arasındaki fark çok iyi açıklanmış here, ancak bazen ikincisini tercih ediyorum; Bu daha az ayrıntılı ve boru hattı karmaşık olduğunda ben kullanmak eğilimindedir: x -> x