Я не понимаю пару вещей с лямбдой.
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 + "";