遍历JavaFileObjects进入死循环

Traverse JavaFileObjects enters into infinite loop

我正在尝试使用 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 循环能够迭代所有 JavaFileObjects。就我而言,它只有一个文件,对吗?但是运行这个程序,它不停地打印很多"for loop"。我希望它只打印一次

所以这里出了什么问题?

(2) RegularFileObject 不是public class,那么如何访问这些文件对象的内容呢?

谢谢。

迭代器 "it" 不在 for 循环中 updated/incremented。