понедельник, 24 февраля 2014 г.

Сопровождение кода? Не слышал!

В продолжение поста про лямбды решил ещё написать.

Допустим, что есть интерфейс:
    interface I {
        public int m(Number p);
    }
и есть реализация этого интерфейса:
    I o = new I() {
        @Override
        public int m(Number p) {
            return p.intValue();
        }
    };

IDEA подсветила выражение, предложив использовать лямбды. После чего, рефакторинг в одно нажатие изменил код так:
    I o = p -> p.intValue();

Но это ещё не всё! IDEA предлагает использовать ссылку на метод:
    I o = Number::intValue;

То есть создаётся λямбда с неявным параметром типа Number, у которого дёргается метод intValue.
Остаётся только застрелиться!

PS. Кстати, на основе лямбд можно легко делать lazy-инициализацию. Что мы скоро и сделаем в Swing.

2cellos

Последнее время стали популярны классические музыкальные инструменты, как будто мода на гитары прошла. Вот ещё пара виолончелистов пошла по стопам Апокалиптики. Но они исполняют AC/DC, а не Metallica. Их первый альбом продаётся тут.

А тут они прикалываются в стиле ба-РОК-ко...

Есть только миг

Сегодня в 12 начали с Юлей долбиться в визовый центр одновременно. Я со своего компа Мишку записывал, а Юля со своего - Лёшку. Успели записаться на 21-ое марта!