Annotation Interface CompileStatic


@Documented @Retention(SOURCE) @Target({TYPE,METHOD,CONSTRUCTOR}) public @interface CompileStatic
This will let the Groovy compiler use compile time checks in the style of Java then perform static compilation, thus bypassing the Groovy meta object protocol.

When a class is annotated, all methods, properties, files, inner classes, etc. of the annotated class will be type checked. When a method is annotated, static compilation applies only to items (closures and anonymous inner classes) within the method.

By using TypeCheckingMode.SKIP, static compilation can be skipped on an element within a class or method otherwise marked with CompileStatic. For example a class can be annotated with CompileStatic, and a method within can be marked to skip static checking to use dynamic language features.

Since:
2.0.0
See Also:
  • CompileDynamic
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    The list of (classpath resources) paths to type checking DSL scripts, also known as type checking extensions.
    Controls whether static compilation is applied or skipped.
  • Element Details

    • value

      Controls whether static compilation is applied or skipped. Defaults to TypeCheckingMode.PASS.
      Returns:
      the static compilation mode
      Default:
      PASS
    • extensions

      String[] extensions
      The list of (classpath resources) paths to type checking DSL scripts, also known as type checking extensions.
      Returns:
      an array of paths to groovy scripts that must be on compile classpath
      Default:
      {}