java8 guava_Guavate:桥接Guava和Java8的微型库
java8 guava
Java8很棒,并向JDK添加了一些有用的抽象,這些抽象通過Google出色的Guava commons庫在Java社區中得到了普及。 小組討論表明, 不久將有一個需要Java 8的Guava版本,并彌合了Guava和Java8之間的鴻溝。 但是,直到這樣的時候,我們其余使用Guava + Java8的人都需要一個很小的填充程序庫來處理諸如Collector實現之類的東西,這些東西會生成Guava Immutable集合。
與往常一樣, 斯蒂芬· 科爾本( Stephen Colebourne)恰恰把這樣一個很小的實用程序類放到 了一起 : 不幸的是,它被埋在Strata中,對于我的所有項目,我都不想僅僅依靠Strata來達到這一小巧的目的。 另外,我本人有一些Java8勻場方法可以使用家。 因此, 我分叉了Colebourne的Guavate,并將其發布給Maven Central,供其他任何想要將此小巧的填充庫添加到其Java8項目中的人使用:
<dependency><groupId>com.github.steveash.guavate</groupId><artifactId>guavate</artifactId><version>1.0.0</version> </dependency>每個不可變集合都有收集器實現:
List<String> inputs = Lists.newArrayList("a", "b", "c"); ImmutableSet<String> outputs = inputs.stream().map(String::toUpperCase).filter(it -> !it.startsWith("b")).collect(Guavate.toImmutableSet()); // outputs is an immutable set of "a" and "c"還有一些便捷的方法可以從Map.Entry(以及實現了Entry的Common-Lang3的Pair)中收集地圖:
Map<String, Integer> inputs = ImmutableMap.of("bob", 1, "jon", 2, "mary", 3 ); Map<String,Integer> outputs = inputs.entrySet().stream().map(e -> Pair.of(e.getKey().toUpperCase(), e.getValue())).collect(Guavate.entriesToMap()); // outputs is a map of BOB:1, JON:2, MARY:3將任意可迭代對象轉換為流(首先應該在JDK中):
Iterable<String> values = // ... Stream<String> streamVals = Guavate.stream(values);并將Optional轉換為零或一個元素的流:
Optional<String> maybe = // ... Stream<String> stream = Guavate.stream(maybe);檢出GitHub項目頁面以跟蹤更新或提交帶有您自己的Java8附加件的拉取請求:
- https://github.com/steveash/guavate
翻譯自: https://www.javacodegeeks.com/2016/07/guavate-tiny-library-bridging-guava-java8.html
java8 guava
總結
以上是生活随笔為你收集整理的java8 guava_Guavate:桥接Guava和Java8的微型库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 疫情使馆备案流程(疫情使馆备案)
- 下一篇: autovalue_AutoValue: