Сегодня я столкнулся с этим блоком кода, и я не знаю, как он работает. Я знаю, как создавать анонимные классы, но я привык видеть подпись метода, а не только пару фигурных скобок. Является ли код между этими скобками помещен в статический блок? Он входит в конструктор? Или это совсем другое?Java Syntactic Sugar
conext.checking(new Expectations() {
{ // <- what does this pair of braces do?
oneOf(alarm).getAttackAlarm(null);
}
});
Это называется «экземпляр инициализатор», а не «статический инициализатор» (у последнего не было бы «этого» по понятным причинам). Также см. Http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.6 –
Это не статический инициализатор, а просто (экземпляр) инициализатора. Этот блок будет запускаться * каждый раз *, этот код запускается не только в первый раз, как это происходит со статическим инициализатором. –
Хорошо, я исправил это .... –