【问题标题】:Java reflect Class.forName failureJava 反映 Class.forName 失败
【发布时间】:2018-06-14 03:59:33
【问题描述】:

使用:

final Class<?> c = Class.forName(path);

这里是类存在的地方: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)

【问题讨论】:

    标签: java class reflection syntax classnotfoundexception


    【解决方案1】:

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

    不要做你正在做的事情,试试:

    final Class<?> c = Class.forName("interfaces.container.InventoryComponentAction");
    

    或更笼统地说:

    final Class<?> c = Class.forName(path.replace('/', '.'));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 2011-05-23
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      相关资源
      最近更新 更多