gpt4 book ai didi

java - Class.getResource 和 ClassLoader.getSystemResource : is there a reason to prefer one to another?

转载 作者:IT老高 更新时间:2023-10-28 21:03:29 26 4
gpt4 key购买 nike

我看到 Class.getResourceClassLoader.getSystemResource 都用于在 Java 中定位资源。有什么理由比另一个更喜欢一个吗?

最佳答案

加载资源有多种方式,每一种的含义略有不同——

ClassLoader::getSystemResource()使用系统类加载器。这使用用于启动程序的类路径。如果你在一个 web 容器中,比如 tomcat,这不会从你的 WAR 文件中获取资源。

Class<T>#getResource()将类的包名添加到资源名中,然后委托(delegate)给它的类加载器。如果您的资源存储在反射(reflect)您的类的包层次结构中,请使用此方法。

ClassLoader#getResource()委托(delegate)给它的父类加载器。这最终会一直搜索到系统类加载器的资源。

如果您感到困惑,请坚持 ClassLoader#getResource()

关于java - Class.getResource 和 ClassLoader.getSystemResource : is there a reason to prefer one to another?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6298400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com