java - Java 8 的构造函数引用的实际应用?

标签 java constructor java-8 closures method-reference

所以我只花了 2 个小时试图找到一个对我来说真正有意义的 Java 8 构造函数引用的实际示例。并不是我不理解构造函数引用的语法或语义。但我无法想出一个我可以/将使用它们的用例。我找到的示例基本上只是介绍了一个非常无意义的功能接口(interface)和一个匹配的类/构造函数,只是为了能够使用构造函数引用。但归根结底,它只是以一种非常复杂的方式执行一个简单的 new...() 。除了通过构造函数引用之外,功能接口(interface)从未以任何其他方式使用过,那有什么意义呢?

谁能给我一个实际的例子,你可以在函数式接口(interface)实现中使用构造函数引用,但是函数式接口(interface)不仅仅用于传递这个构造函数引用,而且实际上有一个存在的理由,因为它被使用也与其他实现一起使用?

最佳答案

这是一个重要的构造函数引用的例子

private final Map<String, BigInteger> biCache = new HashMap<>();

public BigInteger parse(String str) {
    return biCache.computeIfAbsent(str, BigInteger::new);
}

在这种情况下

BigInteger::new

实际上类似于

s -> new BigInteger(s)

关于java - Java 8 的构造函数引用的实际应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35516851/

相关文章:

java - 如何使用 Apache Commons CSV java 忽略 CSV 文件最后一行中的记录?

java - LocalDateTime isAfter 和 isBefore 配置时间

java - 检测将要修改的文件

java - 如何从List访问子类对象的方法

java - 遍历数组列表的时间复杂度

c++ - 针对 "initialize()"方法而不是构造函数的参数

constructor - 关于 Dart 中的工厂构造函数

c++ - 在构造函数初始值设定项中使用成员的成员函数

java - 使用 Java 锁时出现竞争条件的可能性

java - 如何在不使用 spring 的 @Transactional beans 的情况下管理 jax-rs 中的事务