DevOps / Apache Groovy Interview questions
When should you use @CompileStatic instead of dynamic Groovy?
Use @CompileStatic on performance-sensitive code paths - tight loops, hot methods called frequently - where the overhead of Groovy's dynamic method dispatch actually shows up as a measurable bottleneck, since static compilation resolves calls directly like Java does.
It's also worth applying where you want stronger compile-time guarantees on a class's correctness, such as a well-defined library API, and don't need runtime metaprogramming flexibility, like adding methods via metaClass, within that scope.
Avoid it on code that intentionally relies on Groovy's dynamic features - DSL-style code using methodMissing, dynamic metaClass modification, or duck-typing across unrelated classes - since @CompileStatic will reject or fail to resolve calls that depend on that dynamic behavior at compile time.
More Related questions...