@Che_Bu_Rashka

Что за двойные фигурные скобки в коде?

Вот кусок кода, не важна его суть.

public List<SelectItem> filterOptions = new ArrayList<SelectItem>() {{
        add(new SelectItem("Van"));
        add(new SelectItem("Bus"));
        add(new SelectItem("Compact"));
        add(new SelectItem("Semi-Truck"));
        add(new SelectItem("Pickup"));
    }};


Вопрос что за двойные фигурные скобки? Поясните. Без них не работает. Что это за синтаксис, когда применяется?
  • Вопрос задан
  • 2244 просмотра
Решения вопроса 1
Это лучше записать так, чтобы было понятней.
public List<SelectItem> filterOptions = new ArrayList<SelectItem>() {
    // anonymous constructor()
    {
        add(new SelectItem("Van"));
        add(new SelectItem("Bus"));
        add(new SelectItem("Compact"));
        add(new SelectItem("Semi-Truck"));
        add(new SelectItem("Pickup"));
    }
};

Здесь создается анонимный дочерний класс от ArrayList и вызывается его конструктор (тоже, кстати, без имени)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
Судя по всему - блок инициализации - https://habrahabr.ru/post/133237/ первый раздел.
P.S. ниразу не спец по java
Ответ написан
@Che_Bu_Rashka Автор вопроса
Спасибо, просветили. Сколько еще тонкостей. всяких...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект