Разработка программ. Мои заметки.

ТЕМА: Java 8

February 23, 2017 at 23:59

NullPointerException в Java. Закончился цикл. От Истоков до Итогов.

Цикл про NullPointerException в Java — закончился. Вот ссылки на все статьи. Я планирую, что тексты не будут оставаться статичными, а будут меняться в процессе развития языка и упоминаемых инструментов.

1. NullPointerException в Java. Истоки.
2. NullPointerException в Java. The Billion Dollar Mistake.
3. NullPointerException в Java. Элегантное противостояние.
4. NullPointerException в Java. Аннотации как щит. FindBugs.
5. NullPointerException в Java. Checker Framework и Lombok.
6. NullPointerException в Java. Optional - что он такое есть?
7. NullPointerException в Java. Как использовать class Optional.
8. NullPointerException в Java. Сlass Optional в Java 9.
9. NullPointerException в Java. Итоги.

Под кат можно не ходить. Там тот же текст.

February 23, 2017 at 22:17

NullPointerException в Java. Итоги.

9. Ещё немного про Optional и пару советов. Полагаю — умных.

OptionalInt.

Хотелось бы напомнить, что если методу нужно вернуть некий объект. относящийся к одному из трёх обёрточных классов (классы-контейнеры для примитивных типов данных) — Integer, Long и Double. то для таких случаев уже предусмотрены OptionalInt, OptionalLong и OptionalDouble классы. Возникает законный вопрос, почему бы не использовать Optional<Integer>, зачем нужен отдельный OptionalInt? Вопрос хороший. Видимо потому, что в случае взаимодействия с другими интерфейсами вида IntConsumer, IntStream потребовалось бы много лишних преобразований типов и boxing/unbоxing. Возможно мы и вернёмся к этому вопросу как-нибудь позже.

А что есть в других языках?

Есть и в других языках свои неплохие синтаксические конструкции. Облегчающие это дело. Дело борьбы с NullPointerException. Обзорно коснёмся. Для повышения общей эрудиции.

February 15, 2017 at 23:58

Интерфейсы в Java 8 и Java 9. И немного об абстрактных классах.

Interface Недавно в интернете попался программистский анекдот. Совсем незамысловатый, но суть проблемы оттеняющий. Звучит вот так:
Собеседуют Java разработчика. Задают традиционный вопрос:
– В чём состоит отличие абстрактного класса от интерфейса?
– бла-бла… наличие реализации… бла-бла-бла….
– Хорошо, а в Java 8?

Вроде ничего особенного, но вопрос действительно слегка усложнился. Решил чуть детальнее осветить сей аспект.

Эволюция интерфейсов в Java. Нововведения в Java 9.

February 15, 2017 at 23:55

Эволюция интерфейсов в Java. Нововведения в Java 9.

Как менялись возможности интерфейсов в Java. Текущие итоги.

Interface Тут я не буду вдаваться в ООП теорию для чего нужны интерфейсы, я лишь постараюсь максимально полно перечислить синтаксические правила их использования и новые возможности, добавленные в процессе эволюции Java-платформы. Также остановлюсь на несложных моментах, которые порой не упоминаются в учебниках.

До Java 8, Java интерфейс — это конструкция, похожая на класс в котором отсутствуют реализации методов:


    public interface MyStrongInterface 
    {
        public int howManyTimes = 15;

        public void doIt();
    }

Начнём с требований к интерфейсу, которые были заложены в Java, в момент создания языка. С большего они верны и сейчас. Хотя позже появились и расширения. Мы их также рассмотрим.

February 6, 2017 at 02:12

Следующая заметка об Optional.

Вчера написал следующую заметку о классе Optional. Описал как лучше с ним работать. Также обновил сайт в других местах. О себе, о разном. В планах есть ещё путевые заметки об Optional и его перспективах. Они будут чередоваться с другими статьями.

7. NullPointerException в Java. Как использовать class Optional.

February 4, 2017 at 22:15

NullPointerException в Java. Как использовать class Optional.

7. Как использовать class Optional.

После того, как этот класс появился в стандартной библиотеке Java, некоторое количество народа начало его использовать прямо в лоб, объявляя в своих классах поля типа Optional. Просто потому, что они могут содержать null. Разумеется, любая переменная, указывающая на непримитивный тип данных, может хранить null. Но стоит ли её сразу объявлять как Optional?

Я не знаю как много было этих людей, но статьи с примерами такого употребления класса действительно встречались. На одну из них я сослался в предыдущей заметке. Разработчики языка и инструментов довольно быстро написали - ребята, не нужно так незамысловато использовать этот класс. Мы его для другого планировали!

January 31, 2017 at 23:58

Мы на финишной прямой!

Вот мы и добрались до сердца повествования. Быстро пришли. Начинаю вещать про class Optional. Рассчитываю уложиться в две заметки. Коротенько так, но зато всё по делу.

6. NullPointerException в Java. Optional - что он такое есть?

January 31, 2017 at 22:15

NullPointerException в Java. Optional - что он такое есть?

6. Тип Optional. Знакомимся.

В Java 8 появился новый класс — Optional. Это несложный класс, присутствующий в стандартной Java библиотеке, который призван слегка обезопасить код, защитив его от NullPoiunterException. То есть, как-то способствовать уменьшению таких ситуаций при его грамотном использовании.

January 21, 2017 at 00:58

Движемся вперёд. Последовательно и методично.

Ещё два быстрых и изящных прыжка для запугивания NullPointerException.

4. NullPointerException в Java. Аннотации как щит. FindBugs.

5. NullPointerException в Java. Checker Framework и Lombok.

January 17, 2017 at 00:55

Элегантное противостояние.

Продолжаю вкрадчиво подступаться к несложному классу - Optional.

3. NullPointerException в Java. Элегантное противостояние.