Reputation: 1522
Compiling the following Groovy class
@CompileStatic
class StaticCompileTest {
private def fieldInt = 3
}
results in this class, when decompiling the .class
file:
public class StaticCompileTest implements GroovyObject {
private Object fieldInt;
}
Changing the field to be final
does not change the situation.
Why is the Groovy compiler in this case not able to derive the type?
Upvotes: 1
Views: 214
Reputation: 1530
Because it's inherently unsafe to assume that the type won't change.
see http://docs.groovy-lang.org/latest/html/documentation/#_variables_vs_fields_in_type_inference
Upvotes: 4