我正在尝试使用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循环”。我希望它只打印一次
那这里怎么了?
(2)RegularFileObject不是公共类,那么如何访问这些文件对象的内容?
谢谢。
答案 0 :(得分:3)
迭代器“ it”在for循环中未更新/递增。