Почему у объекта возвращаемого значения есть два дополнительных поля в функции getResources URLClassPath? - PullRequest
0 голосов
/ 26 марта 2019

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

Debug Result

1 Ответ

1 голос
/ 26 марта 2019

Экземпляр результата в данном случае является анонимным классом, и он фиксирует значения getResources параметров (final String var1, final boolean var2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...