我想检测有关import语句的错误。但是编译单元似乎在类声明本身中检测到错误。
我正在尝试的代码如下:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import org.apache.commons.*;
public class Bad {
Random r1 = new Random();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
int x = new Random().nextInt(3);
double y = new Random().nextDouble();
int z = 10
}
我没有在项目中添加apache commons。我能够在我的astview中看到两个错误如下
1)E[90, 10] The import org.apache cannot be resolved
2)E[323, 2] Syntax error, insert ";" to complete FieldDeclaration
但是当我尝试使用CompilationUnit
打印问题时,它只返回一个,消息如下所示
1)Syntax error, insert ";" to complete FieldDeclaration
如何使用编译单元以编程方式获取导入错误? 或者我有什么方法可以做到这一点? 提前谢谢。
答案 0 :(得分:0)
当你说astview时,我会假设你在谈论eclipse ASTView插件。 ASTView插件是IDE的一部分,使用IDE具有的所有信息构建。这包括已添加到项目中的库。
编译单元仅使用源代码创建ast。它不了解项目中添加的库。它只能检测语法错误,从而检测到分号丢失的问题。