java8 (stream, lambda) ve guava'yı birleştirebilir miyim? dönüşümler ile uğraşırken
kullanım java8: (örn:
People
bir özellikage
içeren bir sınıftırList<Integer> ages
eList<People> people
dönüşümü), normalde bunu yapmanın (benim için) 2 yolu vardırpeople.stream().map(p -> p.getAge()).collect(toList())
;veya kullanıcı guava2:
People2AgeTransformer
yaş dönmek için Fonksiyon arabirimini uygulayan bir transformatör olupLists2.transform(people, People2AgeTransformer.INSTANCE);
. kodLists2.transform(people, p->p.getAge());
bu parça beni karıştı herhangi bir hata olmadan uygundur ve Tamam çalıştırır:
Son zamanlarda, ben accidentlly java8 ve guava kombine edilebilir ve bu nedenle kod olabileceğini bulmuştur. yöntem Lists2.transform()
java8 Lambda, arayüz java.util.function.Function
uygulanması ise, arayüz com.google.common.base.Function
uygulanması için 2. bağımsız değişken gerektirir. (İkisi de bir yöntem B apply(A input)
ilan B. A dönüştürmek için)
I don Bunun neden farklı paketin iki farklı arayüzü olduğundan işe yaradığını anlıyoruz.
Çok fazla! Sanırım java8 belgelerine bakmam gerekiyor. – LaiyuXuan