В Java следующий код возвращает false для обоих запросов. Зачем? Разве не было бы проще, чтобы ссылки на методы были одноточечными? Это, безусловно, упростило бы прикрепление и отключение слушателей. Поскольку вам нужно сохранить константу для любой ссылки на метод, которая должна быть проверена на эквивалентность, вы не можете просто использовать оператор ссылки метода в каждом необходимом месте.
public class Main {
public Main() {
// TODO Auto-generated constructor stub
}
public void doStuff() {
}
public static void main(String[] args) {
Main main = new Main();
Runnable thing1 = main::doStuff;
Runnable thing2 = main::doStuff;
System.out.println(thing1 == thing2); // false
System.out.println(thing1.equals(thing2)); // false
}
}