我想检测一个关于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
如何使用编译单元以编程方式获取导入错误?或者我有没有办法做到这一点?提前谢谢。
发布于 2017-08-19 20:03:43
当你说astview时,我会假设你说的是eclipse ASTView插件。ASTView插件是集成开发环境的一部分,它是使用集成开发环境拥有的所有信息构建的。这包括已添加到项目中的库。
编译单元仅使用源代码创建一个ast。它对添加到项目中的库一无所知。它只能检测语法错误,因此可以检测分号丢失问题。
https://stackoverflow.com/questions/45770807
复制相似问题