Я читаю исходный код весенней загрузки. Я обнаружил проблему при чтении 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 для отладки программы, результат