groovy(grails)会像java一样给你编译时检查吗?

Bla*_*man 10 java grails groovy

groovy(grails)会像java一样给你编译时检查吗?

如果你总是指定类型,那会改变很多吗?

top*_*opr 16

从Groovy 2.0开始,可以在编译时检查类型.注释可用于类或方法:@TypeChecked或@CompileStatic.第一个告诉编译器在编译期间进行类型检查,第二个强制它执行"静态编译",这或多或少会产生二进制代码,例如来自本机JAVA编译器.当然,第二个注释的使用涉及自身的类型检查.

Grails 2.2是第一个使用Groovy 2.0的版本.


Mic*_*rdt 14

Groovy编译器当然会发现语法错误,但几乎没有像Java那样的类型错误.即使使用未声明的变量也经常会通过编译.

声明类型将增加已完成的检查量,但不会增加太多.

这是因为Groovy是一种动态语言,具有强大的元编程功能,使编译器无法知道给定对象在编译时将具有哪些方法或字段,因为它可能在运行时由其他代码更改.

但是,IDE插件通过将具有声明类型的变量成员标记为类声明中不存在的可能错误来提供折衷.然后开发人员可以决定这个成员是否会在运行时出现,或者他是否只是打错了.此外,已知的类成员出现在自动完成中.