Контекст: класс java.io.File имеет статический метод внутреннего класса следующим образом:
LazyInitialization.temporaryDirectory();
[ИЗМЕНЕНО, чтобы добавить еще немного кода] Мой код, приведенный ниже, в конечном итоге вызывает указанную выше строку кода.Исключение выдается из метода временного каталога (), что в моем контексте нормально / ожидаемо.
try {
File tempFile = File.createTempFile("aaa", "aaa");
} catch (Exception e) {
// handle exception
}
Затем, когда я в следующий раз снова вызываю тот же метод (createTempFile), я получаю "Java.Ошибка lang.NoClassDefFound - Не удалось инициализировать класс java.io.File $ LazyInitialization "
Вопрос: Я предполагал, что внутренний класс LazyInitialization должен был быть загружен загрузчиком класса, когда вызывался его статический метод, даже есливнутренний метод бросил исключение.Тем не менее, почему я вижу ошибку NoClassDefFound при вызове во второй раз?Является ли исходное предположение неверным?