使用 Stream API 在每个对象上调用方法的“好”方法

2024-04-24

是否可以在使用者中运行一个方法,就像方法引用一样,但在传递给使用者的对象上运行:

Arrays.stream(log.getHandlers()).forEach(h -> h.close());

会是这样的:

Arrays.stream(log.getHandlers()).forEach(this::close);

但这不起作用......

是否有可能提供方法参考,或者是x -> x.method()在这里工作的唯一方法是什么?


你不需要this. YourClassName::close将调用close传递给消费者的对象上的方法:

Arrays.stream(log.getHandlers()).forEach(YourClassName::close);

有四种方法引用(Source http://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html):

Kind                                                                         Example
----                                                                         -------
Reference to a static method                                                 ContainingClass::staticMethodName
Reference to an instance method of a particular object                       containingObject::instanceMethodName
Reference to an instance method of an arbitrary object of a particular type  ContainingType::methodName
Reference to a constructor                                                   ClassName::new

就您而言,您需要第三种。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Stream API 在每个对象上调用方法的“好”方法 的相关文章

  • Java 中如何将 long 转换为 int?

    Java 中如何将 long 转换为 int 在 Java 8 中更新 Math toIntExact value 原答案 简单的类型转换应该可以做到 long l 100000 int i int l 但请注意 较大的数字 通常大于214
  • 从 Hibernate 生成 SQL 脚本

    我正在为我的 Java Swing 应用程序使用 Hibernate 4 3 5 Final 并且我做了很多工作UDPATE INSERT and DELETE与它 在 HQL 中或与Criteria 现在 我想做的是导出对数据库所做的所有
  • 如何设置评分栏的星星颜色?

    如何设置评分栏的星星颜色 我想要黄色星星 最简单的方法 android progressTint color color 光滑有光泽
  • Java 拖放图像并在拖动时显示图像缩略图

    我有一个带有图像节点的网格布局 我想在我的应用程序中添加 dnd 功能 例如 当我将图像节点拖放到目标 JPanel 时 进行一些操作 例如以原始大小显示 删除等 我已经实现了这与一种使用 Transferhandler 的方法和一种使用
  • Glide:如何使用 Glide v4 调整 gif 大小并将其另存为文件?

    我想调整 gif 文件的大小并保存它 我尝试使用一些建议的方法 但这些方法给出了错误 后来我知道有些方法在 Glide 中已被弃用v4 byte bytes Glide with context asGif load url toBytes
  • Java 中修剪字符串的可能前缀

    I have String str 我想从中提取不包括可能的前缀的子字符串 abc 我想到的第一个解决方案是 if str startsWith abc return str substring abc length return str
  • 我的代码中出现 ArrayIndexOutOfBoundsException 的原因是什么?

    我正在 Java 中实现凸包的格雷厄姆扫描算法 我在运行代码时收到此错误 对于输入字符串 10 18 Exception in thread main java lang ArrayIndexOutOfBoundsException 0 a
  • 何时使用环境变量与系统属性?

    我想知道以下哪种方法是首选方法 我们可以将事情设置为APP HOME path to file export in profile或类似的东西 并将其访问为System getenv APP HOME 或者 也可以使用属性作为 DAPP H
  • Checkstyle 规则防止调用某些方法和构造函数

    是否可以使用 Checkstyle 来禁止使用某些使用系统相关默认值 区域设置 字符集等 的构造函数或方法 我更喜欢强制执行一项政策 程序员应该明确了解系统相关的值 所以我认为以下物品是危险的 all the constructors of
  • XmlAdapter 到 JAXB 绑定 Joda 的时间间隔?

    我已经被 Web 服务的 JAXB 绑定问题困扰了几个小时 为了准备一个必须返回 Joda Time 类实例 即时 持续时间 间隔等 的更大的 Web 服务 我从一个只有一个返回 Interval 的方法的 Web 服务开始 package
  • 如果Jetty的密钥库中有多个证书,它如何选择?

    我们的系统中有一些代码用于自动将自签名证书生成到密钥库中 然后由 Jetty 使用 如果给定主机的密钥已经存在 那么什么也不会发生 但如果它不存在 我们会生成一个新密钥 如下所示 public void generateKey String
  • 将十六进制字节数组解码为特定代码页在随后编码时会产生错误结果

    我创建了一个简单的应用程序 如下所示 String stringValue new String new byte 0x00 0x00 0x00 0x25 273 byte valueEncoded Arrays copyOfRange s
  • Java中的字符算术

    在玩的过程中 我遇到了一些对我来说似乎很奇怪的事情 以下不是有效的 Java 代码 char x A x x 1 possible loss of precision 因为其中一个操作数是整数 所以另一个操作数被转换为整数 结果无法分配给字
  • 如果表不存在,如何使用 Derby Db 创建表

    我是新来的apache derby我似乎无法工作 CREATE TABLE IF NOT EXISTS table1 可以实现MySql等等我得到了 Syntax error Encountered NOT at line 1 column
  • 需要在 java api 中的 Solr 搜索中搜索文本及其周围的几行

    我正在使用 solr 7 7 2 并且我使用 solrj 在 Solr 中编写了一个 Java 程序 该程序在一个巨大的文本文件中搜索单词 我使用以下代码来显示代表整个文本的搜索结果 SolrQuery params new SolrQue
  • int 到 long 赋值

    我一直在尝试这个 int 和 long 转换 我尝试分配一个int变量为along多变的 代码如下 public static void main String args int i 1024 long j i long k i i i i
  • 策略模式的现实示例

    我一直在读关于OCP原理 http en wikipedia org wiki Open closed principle以及如何使用策略模式来实现这一目标 我打算尝试向几个人解释这一点 但我能想到的唯一例子是根据 订单 的状态使用不同的验
  • java中类的命名约定 - 全部大写

    在 Java 中 当类全部大写时 如何命名它 例如 如果我想创建一个班级来选择某些人成为 VIP 我应该将类命名为 VIPSelector 还是 VipSelector Thanks 你的两个选择都有效 类的主要目标是让它们以大写字母开头
  • 如何使用 Java 11 和 JavaFX 11 运行 ControlsFX 示例应用程序

    ControlFX 网站 http fxexperience com controlsfx says 如果您想使用 ControlsFX 示例应用程序 只需 下载 ControlsFX 版本并在上运行以下命令 命令提示符 请务必将 替换为实
  • Activity 在 Android 上创建两次

    首先 我是 Android 开发新手 所以请耐心等待 我将从用户界面开始 我有一个按钮 一旦您点击它 就会启动一个活动以获取结果 public class GUIActivity extends Activity Override publ

随机推荐

  • 通过值获取 std::queue 中元素的索引

    有没有一种简单的方法来获取元素在 a 中的位置std queue通过它在 C 中的值 例如 std queue
  • 重新声明第 3 方库中不正确的打字稿类型

    我正在使用带有 types winston 类型的winston 3 0 这些类型尚未完全兼容 并且我遇到了类型中的错误 我不知道如何纠正 这是我的代码 记录器 ts export function middleware express H
  • Show 的新实例声明

    我正在尝试在 Haskell 中为我创建但未成功创建的新数据类型添加实例声明 到目前为止我已经尝试过 data Prediction Prediction Int Int Int showPrediction Prediction gt S
  • 使用 Heroku 拒绝关系 django_migrations 的权限

    在尝试在 Heroku 上使用 django 迁移数据库更改时 我得到 psycopg2 ProgrammingError permission denied for relation django migrations 其他人已经能够通过
  • Prolog 中的匹配元组

    为什么Prolog匹配 X Xs 包含更多元素的元组 一个例子 test2 X Xs write X nl test2 Xs test2 X write X nl test
  • Z-index:如何使嵌套元素出现在其父元素下方

    这个小提琴应该说明这个问题 http jsfiddle net 5sqxQ 2 http jsfiddle net 5sqxQ 2 我希望子菜单出现在父菜单下方 然后我想用 JavaScript 来扩展它 以便在悬停在父 li 元素上时从下
  • 如何在使用 GPU 支持编译的 macOS 上安装 Xgboost?

    我尝试在过去 3 天的 MacOS Mojave 10 14 6 上安装集成了 GPU 支持的 xgboost 但是没有成功 我尝试了两种方法 pip 安装 xgboost xgboost 安装在这里 并且在没有 GPU 选项的情况下成功运
  • 使用 jQuery 获取视频的 Vimeo 缩略图

    我发现了类似的问题 但没有一个答案清楚 轻松地显示如何使用 jQuery 和 JSON 获取 vimeo 视频的缩略图 如果有人可以提供帮助 那就太好了 这就是我所得到的 但目前什么也没有显示 var vimeoVideoID 176315
  • 从 EditText 获取文本

    在我的应用程序中 我有一个 EditText 我想在它失去焦点时从中获取值 我该怎么做 Thanks 沿着这个思路应该可行 EditText setOnFocusChangeListener new View OnFocusChangeLi
  • 如何获取 Lottie 动画中可用的总帧数?

    我在我的 Android 应用程序中使用随机 Lottie 动画 我需要知道 Lottie 动画中使用的总帧数 根据总帧数 我想将动画从第一帧循环到特定帧 例如 如果 Lottie 文件包含 60 帧 那么我想执行从 1 到 我正在使用以下
  • 为什么因子中标签和水平的术语如此奇怪?

    不可设置函数的一个例子是labels 您只能在使用创建因子标签时设置它们factor 功能 没有labels lt 功能 因素中的 标签 和 水平 没有任何意义 gt fac lt factor 1 3 labels c one two t
  • 单击按钮,使用 jquery 检查标记所有复选框

    这就是我的表结构的样子 table tbody tr td class helpBod td tr tbody table
  • 是否存在间接函子?

    我正在寻找一个一元函子 它将取消引用它的参数并返回结果 我当然可以写一个 只是看起来有些东西应该已经存在了 所以给出代码 const auto vals 0 1 2 3 vector
  • PHP子查询选择朋友表中与我成为朋友的所有用户的个人资料

    在在这里发布问题之前我做了几个小时的研究 但没有运气 让我们从表中的示例开始 以便您轻松理解我想要做什么 在配置文件表中 我注册了配置文件 它们的 profile id 是 john123 joee smith hassey 上述个人资料彼
  • 是否应该使用 SDK 2.1 重建旧版 Android 应用程序?

    我有一个 Android 应用程序 它使用众所周知的遗留应用程序的策略 http developer android com intl fr guide practices screens support html strategies 它
  • 如何同时使用通配符(LIKE)和数组(IN)进行选择?

    在 SQL 中 如果您想使用通配符执行 SELECT 您可以使用 SELECT FROM table name WHERE field name LIKE value 如果您想使用可能值的数组 您可以使用 SELECT FROM table
  • 范围销毁上的销毁指令/子范围

    我有一个指令 它编译另一个指令并将其附加到传递的相同范围的主体中 这不会与 父 指令位于同一位置 当父指令被销毁时 是否有某种方法可以让子指令和作用域也被销毁 我问这个问题是因为在检查 DOM 后 子指令仍然存在 目前 我连接到了父母 de
  • 在球体表面SceneKit上写入文本?

    我想知道是否有一种方法可以在 SceneKit 中沿着球体对象的表面写入文本 我知道如果我有图像 我可以在表面上放置纹理并实现这种效果 但我想知道是否可以在球体表面以某种方式动态添加文本 任何想法 EDIT 这有效 let layer CA
  • 从 TempData 转换对象集合 (MVC C#)

    我试图将我的对象集合放入 TempData 中 如下所示 HttpPost public ActionResult PandoraRemovalTotal2 List
  • 使用 Stream API 在每个对象上调用方法的“好”方法

    是否可以在使用者中运行一个方法 就像方法引用一样 但在传递给使用者的对象上运行 Arrays stream log getHandlers forEach h gt h close 会是这样的 Arrays stream log getHa