Ответ 1
Есть ли причина, по которой можно создавать ссылки на методы с помощью ссылки
null
в Java?
Это не, но, видимо, там есть ошибка в Eclipse (редактирование: с тех пор как исправлено). Согласно спецификации, и когда вы используете инструменты JDK, она не работает с NPE в строке Runnable fn = test::m;
.
Доказательство: http://ideone.com/APWXna (или компилировать и запускать его локально с помощью javac
и java
, а не Eclipse)
Теория: От JLS §15.13.3:
Во-первых, если ссылочное выражение метода начинается с ExpressionName или Primary, это подвыражение оценивается. Если подвыражение оценивается как
null
, aNullPointerException
создается, и выражение ссылки метода заканчивается внезапно.
(Мой акцент.)