如果我使用新语法获取方法引用:
anObject::aMethod
我总是得到相同的对象吗?也就是说,我可以相信两个对同一方法的引用将是相等的吗?
如果我打算将它们用作可添加和删除的Runnable
回调函数,那么了解这一点非常有用:
someLibrary.addCallback(anObject::aMethod)
// later
someLibrary.removeCallback(sameObject::sameMethod)
这是否需要将引用保存在一个 Runnable
变量中以保持其稳定性?
removeCallback()
的实现方式是什么? - jmjequals
和hashCode
方法 - 请参阅LambdaMetafactory
。 - Boris the Spiderthis
。不清楚这是否遵循与lambda表达式相同的规则(它们没有理由成为稳定引用)。 - salezica