java - Android/Java - 从列表中删除方法引用

标签 java android method-reference

我有一个方法引用数组列表 (object::method),当用户单击按钮时,我会在其中插入一些方法。问题是我还需要在某些时候删除一些特定的方法引用。

如果我使用 list.remove(object::method) 方法不会被删除,因为 lambda object::method 每次使用它时都有另一个 ID。我希望每个对象::方法都是可移动的,所以我需要一种方法来为每个对象-方法对获取相同的 lambda ID。

有没有办法完成此操作,还是我必须手动跟踪我添加的每个 ID,以便删除它?

最佳答案

来自这个答案https://stackoverflow.com/a/29082592/2657100

the target type of a method reference or a lambda expression should be a functional interface. Based on that only, runtime will create an instance of a class providing implementation of the given functional interface.

尝试在列表中添加相同的方法引用两次。您会看到您将拥有两个不同的对象,并且对彼此调用 equals 可能会返回 false

因此,如果没有 ID 或反射性 Method 实例等辅助结构,您将很难管理功能接口(interface)的实例。

关于java - Android/Java - 从列表中删除方法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43989973/

相关文章:

java - 代理身份验证失败错误

java - 请使用类名解释 Java 8 方法对实例方法的引用

java - 为什么我得到空数组?

java - Java 中 double 的模数

java - IntelliJ - 创建适用于 Android Wear 的应用程序

android - 如何更新库 ( .aar ) 文件中的谷歌播放服务版本

java - 在 Stream.map 中使用方法引用时,Eclipse 内容辅助不起作用

Java 传递方法作为参数

java - 为什么 Eclipse 的 SonarQube 插件使用 "project name"而不是 "artifactID"将 Maven 项目与 SonarQube 服务器相关联?

Android 2.1 gallery 不向下兼容 Cupcake 版本,现在怎么办?