开发者社区> 问答> 正文

Java的ClassLoader如何加载动态的匿名内部类?

当使用类加载器加载外部jar包工具时, 外部工具的class文件内部包含匿名的内部类,即外部工具也依赖第三方的jar包,这会导致在用URLCLassLoader去loadclass时, 无法找到要引入工具类的匿名内部类,从而抛出 classnotfoundexception, 这种情况下应该如何正确的加载呢?

展开
收起
天空kongkong 2019-03-06 18:36:32 6135 0
2 条回答
写回答
取消 提交回答
  • 阿里高级开发工程师 长期招聘 Java 高级开发工程师/技术专家。欢迎赐简历:chongyue.jxy@alibaba-inc.com

    如果依赖的其他的 jar,那就需要让该 cl 也能加载到相应的 jar,否则当然报错

    2019-07-17 23:30:18
    赞同 展开评论 打赏
  • URLClassLoader可以自动加载匿名内部类,如果ClassLoader是你自己写的,只需要将工具类的jar以及工具类依赖的第三方jar全部加入到你自己的ClassLoader;如果ClassLoader不是你自己写的,注意将所有依赖(工具类jar,工具依赖的第三方jar)加入到你的class path;

    另外手动加载匿名内部类资源名形式类似于:com.aliyun.test.A$B

    2019-07-17 23:30:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载