Groovy扩展点算子
我不确定何时需要使用扩展点运算符。如果我有以下列表:Groovy扩展点算子,groovy,Groovy,我不确定何时需要使用扩展点运算符。如果我有以下列表: def animals = ['ant', 'buffalo', 'canary', 'dog'] 因为animals和列表的成员都有一个size()方法,所以为了在列表的元素(而不是列表本身)上调用该方法,我需要使用: animals*.size() 而不是: animals.size() 但是,请考虑下面的表达式,该表达式返回在字符串类上可用的方法名称的列表 String.metaClass.methods.name Groovy
def animals = ['ant', 'buffalo', 'canary', 'dog']
因为animals
和列表的成员都有一个size()方法,所以为了在列表的元素(而不是列表本身)上调用该方法,我需要使用:
animals*.size()
而不是:
animals.size()
但是,请考虑下面的表达式,该表达式返回在字符串类
上可用的方法名称的列表String.metaClass.methods.name
Groovy如何知道(不使用扩展点运算符)我希望从String.metaClass.methods
返回的列表的每个元素中检索name
属性,而不是列表本身?在这种情况下是否有一套规则可供使用,例如:
- 若列表中存在方法/属性,请在列表中调用它
- 否则,尝试为列表的每个元素调用它
如果你对冗长的答案感兴趣,我刚才写过。Es magico.blog帖子列表被打破了