Полное руководство по Java 8 Stream API в картинках и примерах


С момента выхода Java 8 я практически сразу начал пользоваться Stream API, так как функциональный подход обработки данных мне пришелся по нраву. Хотелось пользоваться им везде, поэтому я начал разрабатывать библиотеку Lightweight-Stream-API, которая привносит подобный подход в ранние версии Java. Также меня интересовало внутреннее устройство стримов. За это время накопилось достаточно опыта и теперь я спешу им поделиться.
Продолжить

Рейтинг:  11  (Против: 0 | За: 11)
Добавлено: 9.08.2017 от aNNiMON

Комментарии (18)

Создание плагина для NetBeans IDE


В конце мая попросили записать видеоуроки по созданию NetBeans плагина для своего языка программирования. Выполняю эту просьбу :)
Немного изменил подход к записи уроков, теперь они более компактные, к тому же содержат субтитры. Но время на создание одного урока увеличилось, так что новые видео будут появляться примерно раз в неделю.

Репозиторий проекта: https://github.com/annimon-tutorials/NetBeans-Plugin-Tutorial
Плейлист на YouTube: https://www.youtube.com/playli...Zk5-A3o96P6umMCYFieV
Продолжить

Рейтинг:  7  (Против: 0 | За: 7)
Добавлено: 13.06.2017 от aNNiMON

Комментарии (6)

Обобщения в Java (Java Generics)



Дженерики появились в Java 1.5 и призваны обезопасить код от неправильной типизации. Параметризируя класс, интерфейс или метод, можно добиться гибкости в переиспользовании алгоритмов, строгой проверки типов и упростить написание кода.

Без использования дженериков в код может пробраться ошибка типов:
  1. List list = new ArrayList();
  2. list.add("1");
  3. list.add("2");
  4. list.add(3);
  5.  
  6. String v1 = (String) list.get(0);
  7. String v2 = (String) list.get(1);
  8. String v3 = (String) list.get(2);

Здесь мы случайно добавили в список число 3, а затем берём из списка строки. Код скомпилируется, но вот при запуске будет выдан ClassCastException на последней строке.

Перепишем с использованием дженериков:
  1. List<String>

Продолжить

Рейтинг:  9  (Против: 0 | За: 9)
Добавлено: 30.03.2017 от aNNiMON

Комментарии (15)

Плагин javac или добавляем Extension Methods в Java


Screenshot from 2017-03-22 21-32-47.png
В Java 8 появилась возможность писать плагины к компилятору javac. С их помощью можно получать управление на нужном этапе компиляции и производить дополнительные проверки или изменения. Каждый плагин имеет название и может принимать аргументы для настройки своей работы.

Если сравнивать с процессорами аннотаций, то плагины к компилятору более гибкие и простые в использовании. Они не вызывают перекомпиляцию, если был сгенерирован какой-то класс, получить управление можно практически на любом этапе компиляции, вплоть до кодогенерации.


Настройка
Для реализации плагина нужно добавить в зависимости tools.jar, который находится в составе JDK.
  1. dependencies

Продолжить

Рейтинг:  4  (Против: 0 | За: 4)
Добавлено: 22.03.2017 от aNNiMON

Комментарии (3)

Java 9. java.awt.Taskbar


В Java 9 добавлен специальный класс для взаимодействия с панелью задач. Таким образом, можно более тесно интегрировать Java-приложение с операционной системой.

Однако не все системы имеют панель задач, поэтому сперва следует проверить её поддержку:
  1. if (!Taskbar.isTaskbarSupported()) {
  2.     System.out.println("Taskbar is not supported");
  3.     return;
  4. }

Список поддерживаемых методов в Taskbar тоже ограничен, поэтому перед использованием метода нужно проверить, что действие, которое он выполняет, поддерживается. Для этого есть метод boolean isSupported(Taskbar.Feature) и класс перечислений Taskbar.Feature. Код:
  1. final Taskbar taskbar = Taskbar.getTaskbar();
  2. Arrays.stream(Taskbar.Feature.values())

Продолжить

Рейтинг:  5  (Против: 0 | За: 5)
Добавлено: 23.10.2016 от aNNiMON

Комментарии (5)
Всего: 40
<< 1 2 3 4 5 ... 8 >>

Мы в соцсетях

vk tw tg yt gt