我正在阅读spring boot的源代码。读取SpringFactoriesLoader.loadFactoryNames
时发现问题。 URLClassPath.getResources
返回Enumeration<Resource>
的实现,但是该值具有额外的两个字段name
和check
。那么,何时将这两个字段添加到返回值中?
public Enumeration<Resource> getResources(final String var1, final boolean var2) {
return new Enumeration<Resource>() {
private int index = 0;
private int[] cache = URLClassPath.this.getLookupCache(var1);
private Resource res = null;
private boolean next() {
if (this.res != null) {
return true;
} else {
do {
URLClassPath.Loader var1x;
if ((var1x = URLClassPath.this.getNextLoader(this.cache, this.index++)) == null) {
return false;
}
this.res = var1x.getResource(var1, var2);
} while(this.res == null);
return true;
}
}
public boolean hasMoreElements() {
return this.next();
}
public Resource nextElement() {
if (!this.next()) {
throw new NoSuchElementException();
} else {
Resource var1x = this.res;
this.res = null;
return var1x;
}
}
};
}
我正在使用Intellij调试程序,结果是
答案 0 :(得分:1)
在这种情况下,Result实例是一个匿名类,它捕获print
参数getResources
的值。