Module jdk.compiler

Class JavacTask

java.lang.Object
com.sun.source.util.JavacTask
所有已实现的接口:
Callable<Boolean>, JavaCompiler.CompilationTask

public abstract class JavacTask extends Object implements JavaCompiler.CompilationTask
提供访问特定于JDK Java编译器(javac)的功能。
自1.6起:
  • Constructor Details

    • JavacTask

      protected JavacTask()
      子类调用的构造函数。
  • Method Details

    • instance

      public static JavacTask instance(ProcessingEnvironment processingEnvironment)
      返回JavacTaskProcessingEnvironment。如果使用CompilationTask调用编译器,则将返回该任务。
      参数:
      processingEnvironment - 处理环境
      返回:
      JavacTaskProcessingEnvironment
      自1.8起:
    • parse

      public abstract Iterable<? extends CompilationUnitTree> parse() throws IOException
      解析指定文件,返回抽象语法树列表。
      返回:
      抽象语法树列表
      抛出:
      IOException - 如果编译器中发生未处理的I/O错误。
      IllegalStateException - 如果此时无法执行操作。
    • analyze

      public abstract Iterable<? extends Element> analyze() throws IOException
      完成所有分析。
      返回:
      分析的元素列表
      抛出:
      IOException - 如果编译器中发生未处理的I/O错误。
      IllegalStateException - 如果此时无法执行操作。
    • generate

      public abstract Iterable<? extends JavaFileObject> generate() throws IOException
      生成代码。
      返回:
      生成的文件列表
      抛出:
      IOException - 如果编译器中发生未处理的I/O错误。
      IllegalStateException - 如果此时无法执行操作。
    • setTaskListener

      public abstract void setTaskListener(TaskListener taskListener)
      设置指定的监听器以接收描述此编译任务进度的事件通知。如果另一个监听器由于先前调用此方法而接收通知,则该监听器将不再接收通知。非正式地,此方法相当于先前设置的任何监听器调用removeTaskListener,然后调用addTaskListener添加新的监听器。
      参数:
      taskListener - 任务监听器
      抛出:
      IllegalStateException - 如果指定的监听器已经被添加。
    • addTaskListener

      public abstract void addTaskListener(TaskListener taskListener)
      添加指定的监听器,以便它接收描述此编译任务进度的事件通知。此方法可在编译之前或期间的任何时间调用。
      参数:
      taskListener - 任务监听器
      抛出:
      IllegalStateException - 如果指定的监听器已经被添加。
      自1.8起:
    • removeTaskListener

      public abstract void removeTaskListener(TaskListener taskListener)
      删除指定的监听器,使其不再接收描述此编译任务进度的事件通知。此方法可在编译之前或期间的任何时间调用。
      参数:
      taskListener - 任务监听器
      自1.8起:
    • setParameterNameProvider

      public void setParameterNameProvider(ParameterNameProvider provider)
      设置指定的ParameterNameProvider。当为未找到授权名称的方法参数调用VariableElement.getSimpleName()时,可以使用它。给定的ParameterNameProvider可以为方法参数推断出用户友好的名称。设置新的ParameterNameProvider将清除先前设置的任何ParameterNameProvider,不再查询。当未设置ParameterNameProvider或从ParameterNameProvider.getParameterName(javax.lang.model.element.VariableElement)返回null时,将从VariableElement.getSimpleName()返回自动生成的名称。
      实现要求:
      此方法的默认实现不执行任何操作。
      参数:
      provider - 提供者
      自13起:
    • getTypeMirror

      public abstract TypeMirror getTypeMirror(Iterable<? extends Tree> path)
      返回由指定路径确定的树节点的类型镜像。此方法已被Trees上的方法取代。
      参数:
      path - 路径
      返回:
      类型镜像
      参见:
    • getElements

      public abstract Elements getElements()
      返回用于处理程序元素的实用对象。
      返回:
      用于处理程序元素的实用对象
    • getTypes

      public abstract Types getTypes()
      返回用于处理类型镜像的实用对象。
      返回:
      用于处理类型镜像的实用对象