Как стать автором
Обновить

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

Lombok не манипулирует байткодом. Библиотека выступает процессором аннотаций, который на соответствующем шаге вызывает компилятор для генерации обычного java-кода.

А как же @SneakyThrows?

А что с ним? Это просто генерация try-catch вокруг тела аннотированного метода.

Да, sneaky throws основан на такой фишке JVM, что когда мы бросаем generic exception (который может быть как checked, так и unchecked) — JVM не вправе рассматривать exception как checked во всех случаях, т.к. exception можеть быть unchecked.


По сути работает такая конструкция:


static <E extends Exception> void throwQuietly(Exception e) throws E {
      throw (E) e;
}

Использовать можно так:


try {
   smth that throws checked exception
} catch(Exception e) {
   throwQuietly(e);
}

В случае экспешена он будет выброшен, но обрабатывать его не нужно, даже если он checked.

Подозреваю, что вы хотели рассказать это хабраюзеру MEJIOMAH Я исходный код ломбока видел, знаю, что он генерирует.
Если мне не изменяет логика, то в части с кодом Person есть маленькая очепятка в конструкторе. Там должно быть
this.age = age;
Зарегистрируйтесь на Хабре, чтобы оставить комментарий