java - 是否可以缩写删除变量的java函数?
问题描述
在 Java 8 的函数中,有一个快捷方式,即
() -> new ArrayList()
然后显示:
ArrayList::new
在使用流时,我发现自己声明了很多这样的函数:
s.map(var -> var.getFoo()).flatMap(var -> var.parallelStream()).map(var -> var.getBar())
如果前缀是 ,是否还有缩写var -> var.
?就像是
s.map(::getFoo()).flatMap(::parallelStream()).map(::getBar())
解决方案
不是真的,唯一可能的:使用类名作为方法引用:
s.map(FooHolder::getFoo).flatMap(Whatever::parallelStream).map(OwnersOfBar::getBar)
显然,这是相当“更多”的打字。另一方面,它有点冗长,可以很好地告诉您所涉及的类型。
推荐阅读
- c# - 编写多个文本文件时,在我关闭 winform 之前,其中一些不会出现在 Windows 文件夹中
- java - Apache Commons Configuration 将属性设置为环境变量 - 如何?
- php - FPDF 字符编码
- java - 我正在尝试使用 isKeyPressed 方法,但它只是不起作用,是否有一个特定的地方我必须按下键?
- arrays - Postgressql中每个数组值的限制大小
- android - 从 Google Maven 手动下载 JAR
- powershell - 无法获取最新的 Conda 版本(具有升级的 PowerShell 初始化支持的 V 4.6.1)使用 PowerShell(理想情况下与 VSCode 集成)
- ios - UIImagePickerController 后退按钮/取消按钮不可见
- attask - 访问受限于 Workfront API - 无法通过 StreamClient 登录
- unity3d - 在公共变量上附加 Prefab 的子级或访问 Prefab 的子级