null-pointer-exception

В Java есть штука как null ссылка. Это когда ссылку вы объявили, а значение ей не задали и она ни на какой объект класса не указывает. Ну null и null, чего такого то? И действительно… Но! Коварные любители подокалупыватся на собеседованиях и поднять свою самооценку за счёт соискателей любят задавать вопросы на вроде: “А что можно делать с null ссылкой?”. Любой нормальный человек ответит, что ничего, максимум сравнить через ‘==’. И окажется слегка не прав… Через null ссылку можно вызывать статические методы и поля класса. Вот, взгляните на следующий код:

  1. public class App
  2. {
  3.  
  4. public static final String CONST = "Const yes!";
  5.  
  6. public static String staticMethod()
  7. {
  8. return "Static method yes!";
  9. }
  10.  
  11. public static void main(String[] args)
  12. {
  13. //1
  14. App nullObj = null;
  15. System.out.println(nullObj.CONST);
  16. System.out.println(nullObj.staticMethod());
  17. //2
  18. System.out.println(((App) null).CONST);
  19. System.out.println(((App) null).staticMethod());
  20. }
  21. }

Код полностью компилируемый и рабочий. В первом случае статические метод и поле класса вызываются через нулевую ссылку. Во втором случае null приводится к типу App и точно так же выполняется вызов статического метода и поля.

Зачем это нужно знать? Чтобы вас не озалупили на собеседовании! И чтобы так не делать и не пугатся, если такой говногод вы где-нибудь встретите.

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс