首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Class.getResource()和ClassLoader.getResource()时

使用Class.getResource()和ClassLoader.getResource()时
EN

Stack Overflow用户
提问于 2021-01-30 06:11:13
回答 1查看 39关注 0票数 0

我刚刚学习了从Java获取资源的方法,并且看到我们可以通过两种方式使用getResource()来获取资源。

代码语言:javascript
复制
Class.getResource()

ClassLoader.getResource()

我搞不清我们什么时候会用Class.getResource(),什么时候会用ClassLoader.getResource()

有人对此有什么看法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-30 06:27:18

总是由ClassLoader来完成查找资源并使其可用于您的代码的工作。但您并不一定能立即访问ClassLoader实例。如果您这样做了,并且您知道这是要使用的正确ClassLoader,那么您应该继续并通过调用getResource()方法直接使用它。

使用<Class instance>.getResource()通常是获得您想要的行为的更直接、更“智能”的方法。它做了许多不同的事情来确定要用来执行查找的正确ClassLoader。然后,它最终调用<ClassLoader instance>.getResource()或它的表亲方法之一(如ClassLoader.getSystemResource())来查找资源。由于您始终可以访问A类,并且通常可以访问与资源相关联的类,因此调用<Class instance>.getResource()并让系统执行查找要使用的适当ClassLoader的工作会更方便。

注意:在不涉及模块的情况下,<Class instance>.getResource()通常等同于<Class instance>.getClassLoader().getResource()。但并不是所有的类都有关联的ClassLoader。如果类本身没有关联的ClassLoader,则调用Class版本的getResource()将使用系统ClassLoader

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65962385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档