这个过程是由JavaCompiler类来处理的:
将命令行上指定的源文件进行读取,解析为语法树,然后将所有外部可见的定义都输入到编译器的符号表中
在编译的过程中会调用适当的注解处理器.如果在调用过程中,...输入由多个阶段组成;类通过队列从一个阶段迁移到下一个阶段.
在第一个阶段,所有类符号都被输入到它们的封闭范围(enclosing scope,也许可以翻译为定义域?)..., 使类变得完整).使类变得完整可能是按需发生的,但是任何未以这种方式完成的类最终将通过处理未完成队列来完成.使一个类完成需要如下条件:
确定类的泛型参数,父类,接口
将该类的所有符号输入到它所对应的...这是通过在编译后的类的类符号中安装completer对象来实现的,编译后的类为对应的类树调用MemberEnter阶段。...Attr(属性标记)
顶层类认为是"属性标记过的",当使用Attr,将语法树中的名称、表达式和其他元素被解析并与相应的类型和符号相关联.许多语义错误可以在这里被检测,无论是通过Attr,还是通过检查。