在Groovy中声明类型

当你没有在groovy中为变量声明一个类型时,我的理解是java虚拟机必须使用反射来确定在执行任何方法之前该对象的类型并且有可能引发运行时错误.

如果这是正确的,那么当您声明类型时呢? java虚拟机是否仍然使用反射,因为原始代码是groovy?或者首先我对这整件事的理解是否正确?

解决方法

看起来好像类型声明对Groovy如何调用方法有任何特定的影响.本质上,如 on the Groovy wiki所述,Groovy不是简单地调用该方法,而是在对象的元类上调用invokeMethod(),该元类委托给元类中定义的方法或执行方法的反射查找.

值得注意的是,元类使用了MetaMethod,在最坏的情况下,它使用缓存的反射查找,即,它只需要进行单个反射查找.

编辑

使用groovypp可以避免一些开销,这为Groovy代码添加了静态类型.

相关文章

背景:    8月29日,凌晨4点左右,某服务告警,其中一个...
https://support.smartbear.comeadyapi/docs/soapui/steps/g...
有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能...
Scala和Java为静态语言,Groovy为动态语言Scala:函数式编程,...
出处:https://www.jianshu.com/p/ce6f8a1f66f4一、一些内部...
在运行groovy的junit方法时,报了这个错误:java.lang.Excep...