В поисках того, как упорядочить список объектов по параметру, я нашел это решение:
lista.sort(
Comparator.comparing(EntradaLoteVo::getFechaRecepcionLote)
.thenComparingInt(EntradaLoteVo::getId));
И это привлекает мое внимание: EntradaLoteVo::getFechaRecepcionLote
. Это лямбда-выражение? Я не мог найти объяснения в Интернете, потому что я не знаю, как это называется. Я думаю, что он возвращает значение, которое у меня есть в списке, которое соответствует классу, EntradaLoteVo
и выполняет операцию getFechaRecepcionLote
для каждого элемента, а затем sort
сортирует его. Но что еще вы можете сделать?
::
называется ссылкой на метод. Он был представлен в Java 8.Долгое время интерфейсы использовались в качестве обратных вызовов для асинхронных процессов, например, когда вы хотели получить ответ от сервера или когда вы хотели создать новый поток:
Теперь вы можете сделать что-то подобное, отправив ссылки на методы для использования в качестве обратных вызовов и избегая такого сложного синтаксиса:
(valido, token) -> {}
Это допустимый метод, который будет переведен:Что, адаптируя его к вашему вопросу, будет:
Что это делает, так это отправляет ссылку
callback_respuesta
на метод методуloginUsuario
.Это называется лямбда-функциями. Есть 3 типа:
Function
,Supplier
иConsummer
. Приятно отметить, что в конце концов все 3 являются интерфейсами, что является уловкой, которую делает компилятор, чтобы принять такой синтаксис.Это то же самое, что
Func<T, T1, T2.., TResult>
иAction<T, T2...>
в C#.