嗨,我有以下代码片段;
class StringCalci
{
static def plus(Integer self, Integer Operand)
{
return self.toInteger() * Operand.toInteger()
}
}
use (StringCalci)
{
println("inside the Use method!")
println( 12 + 3 )
}
println(12+3)
Run Code Online (Sandbox Code Playgroud)
看到Usegroovy 的使用让我感到震惊.问题是我可以在运行时向我的方法添加方法(我自己的方法).当我看到上面的代码时,我在思考Groovy如何使这样的事情成为可能!println内部的使用Use是乘以两个给定的数字(因为我有覆盖plus方法),在外面println添加它!我的问题是如何的Groovy承认println在执行Use和println外面的Use.是Use关键字/方法吗?我需要了解这个过程的幕后..请让我知道:)在先谢谢:)
欢迎来到动态语言的精彩世界,一切皆有可能,没有什么是确定的!
此功能称为类别.至于实施:
use实际上不是关键字,而是Groovy运行时添加到Object类中的方法,这使得它可以在任何地方使用.ThreadLocal然后为每个方法调用查询.