Groovy静态编译(@CompileStatic)将类字段的类型转换为`对象'`
编译以下Groovy类Groovy静态编译(@CompileStatic)将类字段的类型转换为`对象'`,groovy,static-compilation,Groovy,Static Compilation,编译以下Groovy类 @CompileStatic class StaticCompileTest { private def fieldInt = 3 } 在反编译.class文件时,此类中的结果: public class StaticCompileTest implements GroovyObject { private Object fieldInt; } 将字段更改为final不会改变这种情况 在这种情况下,为什么Groovy编译器无法派生类型?因为假设类型不
@CompileStatic
class StaticCompileTest {
private def fieldInt = 3
}
在反编译.class
文件时,此类中的结果:
public class StaticCompileTest implements GroovyObject {
private Object fieldInt;
}
将字段更改为final
不会改变这种情况
在这种情况下,为什么Groovy编译器无法派生类型?因为假设类型不会更改本身就是不安全的
请参阅,因为假定类型不会更改本质上是不安全的
请参见这是解释我的问题的完美链接,特别是因为它还处理了
最终的
案例。谢谢。这是解释我的问题的完美链接,特别是因为它还处理最后一个案例。非常感谢。