Я не понимаю пару вещей с лямбдой.
String s = "Hello World";
Function<Integer, String> f = s::substring;
s = null;
System.out.println(f.apply(5));
Почему метод f.apply все еще работает, если s = null. В конце концов, объект String должен быть удален GC, потому что нет указателя, указывающего на объект.
Еще одна причина, почему мне здесь не нужен оператор возврата?
Function<Integer, String> f = t -> t + "";