Coverity 工具抛出:在空对象 java.lang.ClassLoader.getSystemClassLoader() 上调用方法

Coverity Tool throws : Calling a method on null object java.lang.ClassLoader.getSystemClassLoader()

我们的遗留项目正在使用 ClassLoader.getSystemClassLoader().getResource("some resource") 找出一些 URL。 现在 coverity 在 ClassLoader.getSystemClassLoader() 上抛出错误,说它可以为空。 现在,在查看 getSystemClassLoader() 的代码时,它看起来在某些情况下可以为空。当它可以为 null 时,理解原因变得非常复杂。

我的问题是,如果应用程序已成功启动并启动并且 运行,ClassLoader.getSystemClassLoader() 是否仍有可能为空。因为这个方法似乎是用来启动 java 应用程序的。

有人可以简单地定义一下这种方法的用法吗?我无法完全理解 java 文档。

要从系统类加载器获取资源,请使用 getSystemResource(String name)

所以修改代码如下:

// Before
ClassLoader.getSystemClassLoader().getResource("some resource")

// After
ClassLoader.getSystemResource("some resource")