Траверс JavaFileObjects входит в бесконечный цикл - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь использовать Java компилятор API.Сначала у меня есть "mytest.java", который работает хорошо.Тогда у меня есть этот код:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
String[] as = new String[]{"mytest.java"};
List<String> list = Arrays.asList(as);
Iterable fileObjects = fileManager.getJavaFileObjectsFromStrings(list);
for (Iterator it = fileObjects.iterator(); it.hasNext(); ) {
    //RegularFileObject str = (RegularFileObject) it.next();
    System.out.println("for loop");
}

(1) Я ожидал, что цикл for сможет перебирать все объекты JavaFileObject.В моем случае у него только один файл, верно?Но, запустив программу, она печатает много «для цикла» без остановки.Я ожидаю, что он напечатан только один раз

Так что же здесь не так?

(2) RegularFileObject не является публичным классом, так как я могу посетить содержимое этих файловых объектов?

Спасибо.

1 Ответ

0 голосов
/ 01 декабря 2018

Итератор "it" не обновляется и не увеличивается в цикле for.

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