Java反映了Class.forName失败

kay*_*kay 0 java reflection syntax class classnotfoundexception

使用:

final Class<?> c = Class.forName(path);
Run Code Online (Sandbox Code Playgroud)

以下是这些类的存在位置:http://prntscr.com/juqp7g

这是错误:

java.lang.ClassNotFoundException: interfaces/container/InventoryComponentAction
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at scripts.action.ActionManager.init(ActionManager.java:48)
at scripts.system.Application.lambda$0(Application.java:17)
at scripts.system.Application.log(Application.java:29)
at scripts.system.Application.main(Application.java:17)
Run Code Online (Sandbox Code Playgroud)

Erw*_*idt 8

参数to Class.forName不是路径,而是完全限定的类名(使用点,而不是斜杠).

而不是你正在做的,尝试:

final Class<?> c = Class.forName("interfaces.container.InventoryComponentAction");
Run Code Online (Sandbox Code Playgroud)

或更一般地说:

final Class<?> c = Class.forName(path.replace('/', '.'));
Run Code Online (Sandbox Code Playgroud)