我正在维护一段代码,但不确定是否有条件。
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之间真的有区别吗?
是的,一点没错。
如果资源名称是相对名称,则它将相对于包含相关类的包是相对的
如果两个类位于不同的类加载器中,则一个可以访问资源,而另一个则不能
当然,如果this
是StorageEngine
的实例(而不是子类),则它们实际上是等效的。
关于java - getResourceAsStream类与getClass(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17217686/