java-8相关内容

为什么使用invokedynamic调用Java 8 lambdas?

invokedynamic 指令用于帮助VM在运行时确定方法引用,而不是在编译时硬连接它。 这对于动态语言很有用,其中确切的方法和参数类型在运行时才知道。但Java lambda不是这种情况。它们被转换为具有明确定义的参数的静态方法。并且可以使用 invokestatic 调用此方法。 那么的需要是什么? lambdas的invokedynamic ,特别是当性能下降时? 解决方 ..
发布时间:2018-11-27 22:05:44 Java开发

在JavaFX图表中添加一行

我在JavaFX中的定义位置添加一行时遇到问题。该行必须是一条恒定的行,如下所示:如何向JavaFX图表添加值标记? 我的问题是,我的布局定义有点复杂。看看: 重要的部分是关于顶端。我希望在y = 60行上有这条线。 RadioBoxes的左侧部分是VBox。带有(Scatter-)图表的部分是StackPane(因为我希望它填充宽度的其余部分)。 StackPane内部是图表和组。该 ..
发布时间:2018-11-27 21:51:03 Java开发

如何创建正则表达式匹配流?

我正在尝试解析标准输入并提取与特定模式匹配的每个字符串,计算每个匹配的出现次数,并按字母顺序打印结果。这个问题似乎是Streams API的一个很好的匹配,但是我找不到从Matcher创建匹配流的简洁方法。 我解决了这个问题通过在匹配上实现迭代器并将其包装到Stream中的问题,但结果不是很易读。如何在不引入其他类的情况下创建正则表达式匹配流? public class Patter ..
发布时间:2018-11-27 21:42:59 Java开发

如何从float []获取流

当我注意到一些奇怪的东西时,我正在学习如何使用java 8流。 Arrays.stream()除浮点数组之外的所有方法都有: Arrays.stream(int []):IntStream Arrays.stream(long []):LongStream Arrays.stream(double []):DoubleStream 同样,有流int,double等实现但不是浮 ..
发布时间:2018-11-27 21:42:50 Java开发

为什么Java 8中的接口允许使用main方法?

为什么接口允许在Java 8中使用 main 方法? 如下面的代码中所述工作正常并正确生成输出。 public interface Temp { public static void main(String args []){ System.out.println(“你好”); } } 目前它表现得像一个类,我已执行使用main方法接口。 为什么 ..
发布时间:2018-11-27 21:23:03 Java开发

Java 8中的实例方法引用类型之间有什么区别?

因此,Java 8引入了方法引用,文档描述了这四种类型。 / p> 我的问题是两种实例类型之间有什么区别? 引用特定对象的实例方法。 引用特定类型的任意对象的实例方法。 两者都是指引用,但有什么显着不同?用于解决它们的类型推断是不同的吗?重要的是(在他们的例子中)一个是闭包而另一个是lambda?是否与方法的参数数量有关? 解决方案 1) myString :: cha ..
发布时间:2018-11-27 21:20:59 Java开发

LambdaMetafactory的Java访问bean方法

我的问题与该主题中的明确使用LambdaMetafactory 密切相关,提供了一些非常好的例子来使用LambdaMetafactory来访问类的静态方法;但是,我想知道访问现有bean实例的非静态字段的等效代码是什么。似乎很难找到一个例子,我执行的每一次尝试都以非工作代码结束。 这是bean代码: class SimpleBean { private Object obj =“ ..
发布时间:2018-11-27 21:17:51 Java开发

将List拆分为沿元素的子列表

我有这个清单(清单 ): [“a”,“b”,null,“c”,null,“d”,“e”] 我想要这样的事情: [[“a”,“b”],[ “c”],[“d”,“e”]] 换句话说我想要使用 null 值作为分隔符将我的列表拆分为子列表,以获取列表列表(列表> )。我在寻找Java 8解决方案。我尝试 ..
发布时间:2018-11-27 13:24:06 Java开发

为什么java.util.Optional不是Serializable,如何使用这些字段序列化对象

Enum类是Serializable,因此使用枚举序列化对象没有问题。另一种情况是class具有java.util.Optional类的字段。在这种情况下抛出以下异常:java.io.NotSerializableException:java.util.Optional 如何处理这些类,如何序列化它们?是否可以将此类对象发送到远程EJB或通过RMI? 这是示例: import ..
发布时间:2018-11-27 13:22:30 Java开发

使用Streams添加BigDecimals

我有一个BigDecimals集合(在这个例子中,一个 LinkedList ),我想一起添加。是否有可能为此使用流? 我注意到 Stream 类有几种方法 Stream :: mapToInt Stream :: mapToDouble Stream :: mapToLong 每个方法都有一个方便的 sum()方法。但是,正如我们所知, float 和 d ..
发布时间:2018-11-27 13:22:05 Java开发

可选orElse Java中的可选项

我一直在使用新的可选类型在Java 8中,我遇到了一个似乎是功能上不支持的常见操作:“orElseOptional” 考虑以下模式: 可选 resultFromServiceA = serviceA(args); if(resultFromServiceA.isPresent)返回结果; else { 可选 resultFromServiceB = servic ..
发布时间:2018-11-27 13:21:34 Java开发

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

我想了解 可选 .orElse() 和 可选 .orElseGet() 方法。 orElse()方法的描述是“如果存在则返回值,否则返回其他。“ 然而, orElseGet()方法的描述是”返回值如果存在,否则调用other并返回该调用的结果。“ orElseGet()方法采用供应商功能接口,基本上不接受任何参数并返回 T 。 在哪种情况下你需要使用 orE ..
发布时间:2018-11-27 13:20:47 Java开发

将Java Stream过滤为1并且只有1个元素

我正在尝试使用Java 8 流 以查找 LinkedList 中的元素。不过,我想保证过滤条件只有一个匹配。 请输入以下代码: public static void main(String [] args){ LinkedList users = new LinkedList(); users.add(新用户(1,“User1”)); users.ad ..
发布时间:2018-11-27 13:19:09 Java开发

为什么我不能将lambda赋给Object?

我试图将lambda分配给Object类型: Object f =() - > {}; 它给我错误说: 此表达式的目标类型必须是功能接口 为什么会发生这种情况,以及如何做到这一点? 解决方案 这是不可能的。根据错误消息 Object 不是一个功能接口,这是一个具有单个公共方法的接口,因此您需要使用引用类型,例如 Runnable ..
发布时间:2018-11-27 13:03:20 Java开发