Как стать автором
Поиск
Написать публикацию
Обновить
9
0
Mikhail Teplitskiy @aegisql

Архитектор и разработчик

Отправить сообщение

Расширение Функциональных Интерфейсов Java

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров6.4K

За годы прошедшие с их появления в Java8 у меня набралась коллекция полезных решений и шаблонов, которые я переносил из проекта в проект, и которые в стандартной версии так и не были осуществлены. Недавно я решил собрать все вместе в небольшом проекте с открытым кодом. В первом релизе проекта расширения охватывают следующие аспекты:

Читать далее

Агрегаторы

Время на прочтение49 мин
Количество просмотров9.1K

В первой части статьи обсуждаются проблемы агрегации данных, подходы и требования к имплементации. Во второй рассматриваются некоторые решения на основе RACE Framework.

Читать далее

Скриптовый язык JavaPath для доступа к сложным структурам данных

Время на прочтение13 мин
Количество просмотров2.9K

В статье рассматривается декларативный скриптовый язык JavaPath как альтернатива использованию Java Reflection и способ избежать "сервисного ада" в обособленных приложениях использующих сложные структуры данных.


Описание проблемы


Рассмотрим глубоко вложенную структуру


class A{
   B b;
}
class B{
   C c;
}
class C{
   String name;
}

Если нам нужно присвоить значение полю name класса C, не имея при этом непосредственного доступа к экземпляру A, то на помощь, обычно, приходит промежуточный слой сервисного API.


private A a;
public void setNameService(String name) {
    a.b.c.name = name;
}

Совершенно очевидно, что данный код не работоспособен, так как ни одно из полей у нас не проинициализированно. Для того чтобы сделать этот код работоспособным, все поля должны существовать до того как выполнится цепочка вызовов.


private A a;
public void setNameService(String name) {
    if(a == null) {
        a = new A();
    }
    if(a.b == null) {
        a.b = new B();
    }
    if(a.b.c == null) {
        a.b.c = new C();
    }
    a.b.c.name = name;
}
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Ramsey, New Jersey, США
Дата рождения
Зарегистрирован
Активность