首页 文章
  • 53 votes
     answers
     views

    列出<Future>到Future <List>序列

    我想将 List&lt;CompletableFuture&lt;X&gt;&gt; 转换为 CompletableFuture&lt;List&lt;T&gt;&gt; . 这非常有用,因为当您有许多异步任务并且需要获得所有异步任务的结果时 . 如果其中任何一个失败,则最终的未来将失败 . 这就是我实施的方式: public static &lt;T&gt; CompletableFuture...
  • 576 votes
     answers
     views

    如何在Mac上安装Java 8

    我想用最新的JavaFX进行一些编程,这需要Java 8.我使用的是IntelliJ 13 CE和Mac OS X 9 Mavericks . 我运行了Oracle的Java 8安装程序,文件看起来就像是他们最终的结果 /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk 但以前的版本是 /System/Library/Java/JavaFramew...
  • 115 votes
     answers
     views

    Java 8 lambda Void参数

    假设我在Java 8中有以下功能接口: interface Action&lt;T, U&gt; { U execute(T t); } 在某些情况下,我需要一个没有参数或返回类型的操作 . 所以我写这样的东西: Action&lt;Void, Void&gt; a = () -&gt; { System.out.println(&quot;Do nothing!&quot;); }; ...
  • 751 votes
     answers
     views

    Java 8将<V>列入Map <K,V>

    我想使用Java 8的流和lambdas将对象列表转换为Map . 这就是我在Java 7及以下版本中编写它的方法 . private Map&lt;String, Choice&gt; nameMap(List&lt;Choice&gt; choices) { final Map&lt;String, Choice&gt; hashMap = new HashMap&lt;&gt...
  • 276 votes
     answers
     views

    当Javadoc标记不完整时,Maven无法在Java 8中工作

    由于我使用Maven,因此我能够在我的本地存储库项目中构建和安装具有不完整Javadoc标记的项目(例如,缺少参数) . 但是,由于我迁移到Java 8(1.8.0-ea-b90),当我尝试构建或安装Javadoc不是Javadoc的项目时,Maven绝对严格缺少文档标记,并向我展示了许多与Javadoc问题相关的Javadoc错误“完善” . 我试图在我的本地存储库中编译和安装的一些项目是我无法...
  • 677 votes
     answers
     views

    错误:java:javacTask:源版本8需要目标版本1.8

    使用IntelliJ IDE无法编译任何项目 . 以下设置的屏幕截图: 使用过的JDK: 项目SDK和语言级别: 语言水平: 有人有什么想法吗?
  • 5 votes
     answers
     views

    Reactor Mono vs CompletableFuture

    刚开始探索反应堆项目及其抽象Mono和Flux,并希望了解与java 8准系统CompletableFuture的基本差异 . 这是一个简单的代码: public static void main(String[] args) throws Exception { Mono.fromCallable(() -&gt; getData()) .map(s -&gt;...
  • 3 votes
     answers
     views

    使用@NonNull检查类成员

    假设我有一个有3个成员的 class : Class A { private String string1; /** Cannot be null */ private String string2; /** Cannot be null */ private String string3; /** Can be null */ } 我有2个方法接受这个类的对象作为参数 ...
  • 365 votes
     answers
     views

    抛出异常的Java 8 Lambda函数?

    我知道如何创建对具有 String 参数并返回 int 的方法的引用,它是: Function&lt;String, Integer&gt; 但是,如果函数抛出异常,这不起作用,比如它定义为: Integer myMethod(String s) throws IOException 我该如何定义这个参考?
  • 3 votes
     answers
     views

    Java 8流和列表分组

    我有一个订单列表,我想用户使用Java 8流和Collectors.groupingBy对它们进行分组: orderList.stream().collect(Collectors.groupingBy(order -&gt; order.getUser()) 这将返回包含用户和订单列表的 Map : Map&lt;User, List&lt;Order&gt;&gt; 我不需要整个对象用户只...
  • 220 votes
     answers
     views

    为什么Iterable <T>不提供stream()和parallelStream()方法?

    我想知道为什么 Iterable 接口不提供 stream() 和 parallelStream() 方法 . 考虑以下课程: public class Hand implements Iterable&lt;Card&gt; { private final List&lt;Card&gt; list = new ArrayList&lt;&gt;(); private final...
  • 2 votes
     answers
     views

    Java 8中不同语言环境的命名月份名称

    我需要能够以月份格式支持名义月份名称,例如Listopad 2016年用波兰语 . 我仍然支持其他日期的格式格式作为完整 MMM/dd/YYYY 日期,所以我不想失去该功能 . 我使用的是Java 8,我相信Java 8默认使用genitive格式 . 我已经尝试过将jodaTime用于MonthYear,但Java 8更新似乎强迫它在任何地方显示所有格式 . 我需要支持其他语言支持几个月的变换,...
  • 805 votes
     answers
     views

    Java 8中的::(双冒号)运算符

    我正在探索Java 8源代码,发现代码的这一特定部分非常令人惊讶: //defined in IntPipeline.java @Override public final OptionalInt reduce(IntBinaryOperator op) { return evaluate(ReduceOps.makeInt(op)); } @Override public final ...
  • 122 votes
     answers
     views

    使用Streams添加BigDecimals

    我有一个BigDecimals的集合(在这个例子中,一个 LinkedList ),我想加在一起 . 是否可以使用流? 我注意到 Stream 类有几种方法 Stream::mapToInt Stream::mapToDouble Stream::mapToLong 每个方法都有一个方便的 sum() 方法 . 但是,正如我们所知, float 和 double 算术几乎总是一个坏主意 . 那么...
  • 217 votes
     answers
     views

    Java 8 getter应该返回可选类型吗?

    Java 8中引入的 Optional 类型对于许多开发人员来说是一件新事物 . 是一个getter方法返回 Optional&lt;Foo&gt; 类型代替经典的 Foo 一个好习惯吗?假设该值可以是 null .
  • 118 votes
     answers
     views

    可选orElse Java中的可选项

    我一直在使用新的Optional type in Java 8,并在功能上支持我've come across what seems like a common operation that isn':&quot;orElseOptional&quot; 考虑以下模式: Optional&lt;Result&gt; resultFromServiceA = serviceA(args); if (...
  • 148 votes
     answers
     views

    标准Kotlin库中提供了哪些Java 8 Stream.collect等价物?

    在Java 8中,有Stream.collect允许对集合进行聚合 . 在Kotlin中,除了作为stdlib中的扩展函数的集合之外,它不以相同的方式存在 . 但目前尚不清楚不同用例的等价性 . 例如,top of the JavaDoc for Collectors是为Java 8编写的示例,当将它们移植到Kolin时,在不同的JDK版本上不能使用Java 8类,因此它们应该以不同的方式编写 ....
  • 23 votes
     answers
     views

    Java 8方法引用调用局部变量

    我正在学习Java 8,我遇到了一些我觉得有点奇怪的事情 . 请考虑以下代码段: private MyDaoClass myDao; public void storeRelationships(Set&lt;Relationship&lt;ClassA, ClassB&gt;&gt; relationships) { RelationshipTransformer transform...
  • 2 votes
     answers
     views

    Java8可选如果为null则触发一个方法,如果不为null则为另一个方法

    我有一个字符串和B字符串,app如果不是null则更喜欢A,并调用转换方法 changeA() . 但是,如果A为null,则它将使用B并调用方法 changeB() . 两种转换方法都返回相同的对象类型 Result . 但有一点需要注意的是,str B也可能为null,如果该情况返回null . 我如何使用JDK中的optional和lambda表达式来处理此问题 . 我有以下代码库: ...
  • 2 votes
     answers
     views

    如果optional.isPresent()则使用可选值作为方法参数

    我有一个包含几个选项的对象,其中可选项不为null,我想将其值作为参数传递给需要多个参数的方法 . 目前我有一个代码块,如下所示: if (dealerRequest.getIsApproved().isPresent()) { repository.updateDealerPartnerFinanceIsApproved(dealerRequest.get...
  • 9 votes
     answers
     views

    如何在java 8中使用流将一些字段收集到一个列表中?

    例如,我有一个名字和姓氏的人 . 我想从人员列表中收集一个字符串列表(姓名和姓氏),但似乎我不能每个列表使用两次 Map 或者每个列表不能使用两次流 . 我的代码是: persons.stream() .map(Person::getName) .collect(Collectors.toSet()) .stream().map(Person::getSurname) .collect(...
  • 0 votes
     answers
     views

    关闭内部睡眠 - Java 8 lambdas

    我知道这个问题听起来很愚蠢 - 我认为lambdas是并行执行的,所以当我运行类似的东西时 List&lt;Integer&gt; list = ArrayList&lt;Integer&gt;(); list.add(3); list.add(2); list.add(1); list.forEach(n -&gt; System.out.println(&quot;&quot;+n)); 我...
  • 10 votes
     answers
     views

    如何使用Java 8流将列表的元素映射到它们的索引?

    有了一个字符串列表,我需要构建一个有效对的列表 (string, its position in the list) . 目前我有使用谷歌收藏的代码: public Robots(List&lt;String&gt; names) { ImmutableList.Builder&lt;Robot&gt; builder = ImmutableList.builder(); for...
  • 152 votes
     answers
     views

    可以编译Java 8代码以在Java 7 JVM上运行吗?

    Java 8引入了重要的新语言功能,例如lambda表达式 . 语言中的这些更改是否伴随着编译的字节码中的这些重大更改,这些更改会阻止它在不使用某些反向转换器的情况下在Java 7虚拟机上运行?
  • 272 votes
     answers
     views

    “Java Concurrency In Practice”仍然有效吗? [关闭]

    Java Concurrency in Practice仍然有效吗?我想知道本书中描述的想法,概念和实现是否仍然符合最新的Java版本 . 我问,因为最新版本是在2006年完成的 .
  • 0 votes
     answers
     views

    部署后无法访问Google App Engine中的Spring Boot应用程序

    我是Google App Engine的新手 . 我一直在尝试将练习部署到Google Cloud . 这是项目,以防您想要详细查看配置: Exercise Project to Deploy 这个项目是用Java 8和Spring Boot制作的 . 这是pom.xml &lt;parent&gt; &lt;groupId&gt;org.springframework.boot&lt;/...
  • 195 votes
     answers
     views

    用于可选

    现在已经使用Java 8大约6个月了,我仍然没有信心何时使用 Optional . 我似乎想要在任何地方使用它可能是 null ,而且根本没有 . 似乎有很多情况我可以使用它,我不知道它是否增加了好处(可读性/无效安全性)或只是导致额外的开销 . 所以,我有一些例子,我对 Optional 是否有益的想法 . 1 - 当方法可以返回 null 时,作为公共方法返回类型: public Opti...
  • 143 votes
     answers
     views

    `Optional.orElse()`和`Optional.orElseGet()`之间的区别

    我试图理解Optional&lt;T&gt;.orElse()和Optional&lt;T&gt;.orElseGet()方法之间的区别 . orElse() 方法的描述是&quot;Return the value if present, otherwise return other.&quot; 虽然, orElseGet() 方法的描述是&quot;Return the value if p...
  • 175 votes
     answers
     views

    在Java中显式调用默认方法

    Java 8引入了default methods以提供扩展接口的能力,而无需修改现有实现 . 我想知道当该方法被覆盖或由于不同接口中的默认实现冲突而无法显示时,是否可以显式调用方法的默认实现 . interface A { default void foo() { System.out.println(&quot;A.foo&quot;); } } class B...
  • 612 votes
     answers
     views

    如何将Java 8流转换为数组?

    将Java 8 Stream 转换为数组的最简单/最简单的方法是什么?

热门问题