我正在维护一段代码,但不确定是否有条件。

resourceStream = StorageEngine.class.getResourceAsStream(resourceFile);
if (resourceStream == null) {
    log.info("StorageEngine: didn't find  resource file in the classes root ");
    resourceStream = this.getClass().getResourceAsStream(resourceFile);
}


StorageEngine.class.getResourceAsStream和this.getClass()。getResourceAsStream之间真的有区别吗?

TIA

最佳答案

StorageEngine.class.getResourceAsStream和this.getClass()。getResourceAsStream之间真的有区别吗?


是的,一点没错。


如果资源名称是相对名称,则它将相对于包含相关类的包是相对的
如果两个类位于不同的类加载器中,则一个可以访问资源,而另一个则不能


当然,如果thisStorageEngine的实例(而不是子类),则它们实际上是等效的。

关于java - getResourceAsStream类与getClass(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17217686/

10-13 01:24