Android / Java - 从List中删除方法引用

时间:2017-05-15 22:51:51

标签: java android method-reference

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

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

有没有办法实现这一点,还是我必须手动跟踪我添加的每个ID,以便删除它?

1 个答案:

答案 0 :(得分:0)

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

  

方法引用或lambda表达式的目标类型应该是一个功能接口。仅基于此,运行时将创建一个类的实例,提供给定功能接口的实现。

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

因此,您将很难管理功能接口的实例,而无需像ID或反射Method实例之类的辅助结构,或类似的东西。