Контекст: класс 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 при повторном вызове? Верно ли исходное предположение?