上下文: java.io.File 类有一个静态内部类方法如下:
LazyInitialization.temporaryDirectory();
[编辑添加更多代码]我下面的代码最终调用了上面的代码行。从temporaryDirectory() 方法中抛出一个异常,在我的上下文中这是好的/预期的。
try {
File tempFile = File.createTempFile("aaa", "aaa");
} catch (Exception e) {
// handle exception
}
然后,当我再次调用相同的方法 (createTempFile) 时,我收到“java.lang.NoClassDefFound 错误 - 无法初始化类 java.io.File$LazyInitialization”
问题:我假设内部类 LazyInitialization 在调用其静态方法时应该由类加载器加载,即使内部方法抛出异常。然而,为什么我在第二次调用时会看到 NoClassDefFound 错误?原来的假设不正确吗?