Я столкнулся с проблемой, которая возникала при использовании ссылки на метод, но не с лямбдами. Этот код был следующим:
(Comparator<ObjectNode> & Serializable) SOME_COMPARATOR::compare
или с лямбдой,
(Comparator<ObjectNode> & Serializable) (a, b) -> SOME_COMPARATOR.compare(a, b)
Семантически, это строго то же самое, но на практике это отличается, так как в первом случае я получаю исключение в одном из классов сериализации Java. Мой вопрос не об этом исключении, потому что реальный код выполняется в более сложном контексте, который, как оказалось, имеет странное поведение с сериализацией, поэтому было бы слишком сложно ответить, если бы я дал больше подробностей.
Что я хочу понять, так это разницу между этими двумя способами создания лямбда-выражения.