статический вызов класса.getName()

Я наткнулся на следующий код в NestedRuntimeException в org.springframework.core:

static {
    NestedExceptionUtils.class.getName();
}

Какая польза от наличия такого блока?

Ответ 1

Он будет eagerly загружать класс NestedExceptionUtils чтобы избежать тупика загрузчика. Сообщалось об ошибке (SPR-5607) "Нетривиальный NestedRuntimeException.getMessage() может вызывать взаимоблокировки в OSGi", и это решение для той же проблемы.

Отредактировано:

Он также упоминается в исходном коде как комментарий. Для получения полного документа с исходным кодом перейдите по ссылке. Вот часть исходного кода класса NestedRuntimeException.

static {
    // Eagerly load the NestedExceptionUtils class to avoid classloader deadlock
    // issues on OSGi when calling getMessage(). Reported by Don Brown; SPR-5607.
    NestedExceptionUtils.class.getName();
}