上下文: java.io.File類有一個靜態的內部類方法如下:Java靜態內部類初始化錯誤
LazyInitialization.temporaryDirectory();
[編輯以添加更多的代碼] 我的下面的代碼最終調用上述代碼行。 temporaryDirectory()方法引發異常,這在我的上下文中是很好的/預期的。
try {
File tempFile = File.createTempFile("aaa", "aaa");
} catch (Exception e) {
// handle exception
}
然後,當我下一次調用相同的方法(createTempFile)再次,我得到一個 「java.lang.NoClassDefFound錯誤 - 無法初始化類java.io.File $惰性初始模式」
問題: 我認爲內部類LazyInitialization應該在其靜態方法被調用時由類加載器加載,即使內部方法拋出異常。但是,爲什麼在第二次調用時會看到NoClassDefFound錯誤?原來的假設是否不正確?
我認爲它應該工作。告訴我們你的代碼。 – thejh 2010-12-13 22:00:59