问题标签 [java-8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7921 浏览

java - Java 8 编译器错误 - 如何获取更多信息?

我玩过 Java 8 ea b72,但出现编译器错误。有没有办法从 javac 获取更多信息,例如它当前正在处理的文件列表?如果我有一个大致的想法,我可能会找到解决方法,直到问题得到解决。

只是为了记录,这里是堆栈跟踪(如果在 IntelliJ IDEA 之外编译,它看起来很相似,顺便说一句):

0 投票
3 回答
8004 浏览

java - Java 8 中的“静态导入”与“静态导入”

我试图在 Java 上使用静态导入,但我写错了

并且编译的代码(虽然找不到“out”符号),没有语法错误。

那么,“静态导入”究竟意味着什么?

0 投票
2 回答
3039 浏览

java - 我可以在 Java 8 中将 Clojure 函数用作 Lambda 吗?

我在 Clojure 中使用了许多库,它们生成符合“ clojure.lang.IFn ”接口的高阶函数。

它有多个 arity 重载,即接口看起来像:

我可以在 Java 8 中直接使用这种类型的对象作为可调用的 lambda 函数吗?

0 投票
1 回答
436 浏览

java - 在 jdk 8 的接口上定义静态(非继承)方法的正确语法是什么?

虚拟扩展方法/又名默认可覆盖方法的语法(在 jdk 8 中)有据可查:

但是我找不到接口上静态非继承方法的正确语法的任何参考 ?

0 投票
8 回答
8964 浏览

java - Java 8 中“函数式接口”的精确定义

最近我开始探索 Java 8,我不太了解 Java 实现 lambda 表达式所必需的“函数式接口”的概念。在 Java 中有一个非常全面的 lambda 函数指南,但我卡在了定义函数接口概念的那一章。定义如下:

更准确地说,函数式接口被定义为只有一个抽象方法的任何接口。

然后他继续举例,其中一个是Comparator接口:

我能够测试我可以使用 lambda 函数代替 Comparator 参数并且它可以工作(即Collections.sort(list, (a, b) -> a-b))。

但是在 Comparator 接口中,方法compareequals方法都是抽象的,这意味着它有两个抽象方法那么,如果定义需要一个接口只有一个抽象方法,这怎么能工作呢?我在这里想念什么?

0 投票
1 回答
389 浏览

java - Java 8 Map 和 Reduce 不运行

我正在使用 Project Lambdas 的 .map() 方法从 List 对象中提取一些数据。之前,Jdk 1.8 包含 Mapper 接口,但现在,我看到它的 map 方法获取 Function 接口。我的方法用法如下:

我已经向 nutList 添加了一些项目,并且我使用以下方法通过 getter 提取字段值。

但是上面的 n 参数表现得像一个对象,它不访问原始对象的方法。此用法通常使用 Mapper 功能接口运行。

0 投票
3 回答
921 浏览

javascript - 如何在 Java 中编写立即函数调用?提供的 JavaScript 示例

如何使用 lambda 将以下 JavaScript 示例转换为 Java 8 中的相应代码。我正在尝试获取 Java 8 lambda。
编造的例子。

我曾尝试用 Java 8 编写它,但语法或某些东西是错误的。请参阅下面的代码。

谢谢。

0 投票
1 回答
9983 浏览

java - android java 会在 java 8 中支持 lambda 表达式吗?

我知道 dalvik vm 中的“java”在 API 和体系结构等方面与 Java se 不同。但语法一直是相同的。(如果我错了请纠正我)

现在java 8中对lambda表达式的支持即将发布,android java会跟进吗?google 或 aosp 是否承诺让 dalvik 与 java se 保持一致?

更新:现在与 Android 4.4 Kit Kat (API 19) 一样,Java 7 语法已得到正式支持。来源 android.com

0 投票
15 回答
388851 浏览

java - 从 Java 8 中的 java.util.stream.Stream 中检索列表

我正在使用 Java 8 lambdas 来轻松过滤集合。但是我没有找到一种简洁的方法来将结果检索为同一语句中的新列表。这是我迄今为止最简洁的方法:

网络上的示例没有回答我的问题,因为它们在没有生成新结果列表的情况下停止。必须有更简洁的方法。我本来预计,Stream该类的方法为toList(), toSet(), ...</p>

targetLongList有没有办法可以通过第三行直接分配变量?

0 投票
4 回答
5135 浏览

java - Lambda 和 putIfAbsent

我在这里发布了一个答案,其中代码演示了readputIfAbsent方法的使用:ConcurrentMap

这种方法的主要缺点是您必须创建一个新对象以放入地图中,无论它是否会被使用。如果物体很重,这可能会产生重大影响。

我突然想到这将是一个使用 Lambdas 的机会。我还没有下载 Java 8,或者直到它正式发布(公司政策)之前我才能下载,所以我无法对此进行测试,但这样的东西是否有效?

我希望使用 lambda 来延迟对 的评估,new AtomicLong(0)直到它实际确定应该创建它,因为它在地图中不存在。

如您所见,这更加简洁和实用。

基本上我想我的问题是:

  1. 这行得通吗?
  2. 还是我完全误解了 lambda?
  3. 有一天这样的事情可能会奏效吗?