Warum verursacht der folgende Code ClassNotFoundException
?
Ausgabe:
%Vor% Versuchen Sie Class c = Class.forName("tests.App02$A")
. Es ist keine Top-Level-Klasse, verwenden Sie $, um es zu lokalisieren.
Sie müssen $
verwenden, um auf die geschachtelte Klasse zuzugreifen:
Wenn Sie Ihre Klasse kompilieren, werden Sie feststellen, dass die geschachtelte Klasse wie folgt lautet: App02$A.class
, unter Paket tests
. Es wäre dann sinnvoller.
Weil Sie einen kanonischen Namen verwenden, aber Sie sollten name ( A.class.getName()
) verwenden.
In Ihrem Fall sollten Sie Class c = Class.forName("tests.App02$A");
Tags und Links java classloader classnotfoundexception