Я новичок в лямбда-выражениях, так что потерпите меня. Скажем, у меня есть интерфейс с одной абстрактной функцией:
public interface IAbsFunc {
public abstract void absFunc(int x);
}
В этом случае я могу сохранить лямбда-выражение в переменной:
public class Lambda {
public static void main(String[] args) {
IAbsFunc obj = (int x) -> System.out.println(x);
obj.absFunc(3);
}
}
Если я правильно понимаю , это похоже на сохранение метода в переменной. Однако это уже можно сделать с помощью java .lang.reflect:
public class Lambda {
public static void main(String[] args) throws Exception {
Method obj = PrintStream.class.getDeclaredMethod("println", int.class);
obj.invoke(System.out, 3);
}
}
Ясно, что здесь что-то не хватает. В какой ситуации лямбда-выражение было бы предпочтительнее?