Kontext: java.io.File Klasse hat eine statische Methode innere Klasse wie folgt:java statische innere Klasse Initialisierung Fehler
LazyInitialization.temporaryDirectory();
[EDITED etwas mehr Code hinzufügen] unter Mein Code ruft schließlich die oben Codezeile. Eine Exception wird in der temporaryDirectory() -Methode ausgelöst, was in meinem Kontext gut/erwartet ist.
try {
File tempFile = File.createTempFile("aaa", "aaa");
} catch (Exception e) {
// handle exception
}
Dann, wenn ich rufe neben die gleiche Methode (createTempFile) wieder, erhalte ich einen "java.lang.NoClassDefFound Fehler - kann nicht Klasse java.io.File $ LazyInitialization initialisieren"
Frage: Ich nahm an, dass die innere Klasse LazyInitialization vom Klassenladeprogramm geladen worden sein sollte, wenn ihre statische Methode aufgerufen wurde, obwohl die innere Methode eine Ausnahme ausgelöst hat. Warum sehe ich den NoClassDefFound Fehler beim zweiten Aufruf? Ist die ursprüngliche Annahme falsch?
Ich denke, dass es funktionieren sollte. Zeig uns deinen Code. – thejh