Tag: java 8

如何用Java 8创build无限stream

有没有一种简单的方法来创build一个无限的stream使用java-8没有外部库? 例如在Scala中: Iterator.iterate(0)(_ + 2)

有一个collections家收集到一个保留订单吗?

Collectors.toSet()不保留顺序。 我可以使用列表来代替,但是我想指出所得到的集合不允许元素重复,这正是Set接口的用途。

我怎样才能收集一个Java 8stream到一个番石榴ImmutableCollection?

我想要做以下事情: List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); 但是结果列表是番石榴ImmutableList列表的实现。 我知道我可以做 List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); List<Integer> immutableList = ImmutableList.copyOf(list); 但我想直接收集。 我试过了 List<Integer> list = IntStream.range(0, 7) .collect(Collectors.toCollection(ImmutableList::of)); 但它抛出了一个例外: java.lang.UnsupportedOperationException com.google.common.collect.ImmutableCollection.add(ImmutableCollection.java:96)

如何使用lambdaexpression式检查元素是否存在?

具体来说,我有TabPane,我想知道是否有具有特定ID的元素。 所以,我想用Java中的lambdaexpression式来做这件事: boolean idExists = false; String idToCheck = "someId"; for (Tab t : tabPane.getTabs()){ if(t.getId().equals(idToCheck)) { idExists = true; } }

Spring Boot中的JSON Java 8 LocalDateTime格式

我在Spring Boot应用程序中格式化Java 8 LocalDateTime时遇到了一个小问题。 与“正常”date我没有问题,但LocalDateTime字段转换为以下内容: "startDate" : { "year" : 2010, "month" : "JANUARY", "dayOfMonth" : 1, "dayOfWeek" : "FRIDAY", "dayOfYear" : 1, "monthValue" : 1, "hour" : 2, "minute" : 2, "second" : 0, "nano" : 0, "chronology" : { "id" : "ISO", "calendarType" : "iso8601" } } 虽然我想将其转换为如下所示的内容: "startDate": "2015-01-01" 我的代码如下所示: @JsonFormat(pattern="yyyy-MM-dd") @DateTimeFormat(iso […]

Android Studio错误:错误:CreateProcess错误= 216,此版本的%1与您正在运行的Windows版本不兼容

安装了Android Studio 2.2 Preview 2并得到这个错误: 错误:CreateProcess错误= 216,此版本的%1与您正在运行的Windows版本不兼容。 检查计算机的系统信息,然后联系软件发行商 截图: 我重新安装了JDK,仍是同样的问题。 我甚至试图使用embedded式的JDK,但仍然有相同的问题:

如何将java.sql.timestamp转换为LocalDate(java8)java.time?

在Java 8中,如何将Timestamp (在java.sql )转换为LocalDate (在java.time )?

为什么消费者接受与陈述体而不是expression体的lambdas?

下面的代码令人惊讶的是编译成功: Consumer<String> p = ""::equals; 这个也是: p = s -> "".equals(s); 但是,这是失败的错误boolean cannot be converted to void的预期: p = s -> true; 用括号修改第二个例子也失败了: p = s -> ("".equals(s)); 这是Java编译器中的错误还是有我不知道的types推理规则?

Java 8:java.util.function中的TriFunction(和kin)在哪里? 或者有什么select?

我看到java.util.function.BiFunction,所以我可以这样做: BiFunction<Integer, Integer, Integer> f = (x, y) -> { return 0; }; 如果这不够好,我需要TriFunction? 它不存在! TriFunction<Integer, Integer, Integer, Integer> f = (x, y, z) -> { return 0; }; 我想我应该补充一点,我知道我可以定义我自己的TriFunction,我只是想了解没有包含在标准库中的基本原理。

构造函数的参考 – 创buildgenerics数组时没有警告

在Java中,不可能直接创build一个genericstypes的数组: Test<String>[] t1 = new Test<String>[10]; // Compile-time error 但是,我们可以使用原始types来执行此操作: Test<String>[] t2 = new Test[10]; // Compile warning "unchecked" 在Java 8中,也可以使用构造函数引用: interface ArrayCreator<T> { T create(int n); } ArrayCreator<Test<String>[]> ac = Test[]::new; // No warning Test<String>[] t3 = ac.create(10); 为什么编译器在最后一种情况下不显示警告? 它仍然使用原始types来创build数组,对吗?