如何使用groovy mixin添加静态方法

如何使用groovy mixin添加静态方法,第1张

概述我想使用groovy的mixin功能将方法导入为“类(静态)方法”而不是实例方法.当我使用mixin时,即使我在我的mixin类中有一个静态方法,它也会转换为目标类中的实例方法.我希望导入的方法是一个类(静态)方法.有一个很好的方法吗? 我不知道使用mixins向类添加静态方法的任何方法,但您可以通过metaClass.static属性向类添加静态方法.这是一个添加静态fqn()方法的示例,该方法 我想使用groovy的mixin功能将方法导入为“类(静态)方法”而不是实例方法.当我使用mixin时,即使我在我的mixin类中有一个静态方法,它也会转换为目标类中的实例方法.我希望导入的方法是一个类(静态)方法.有一个很好的方法吗?解决方法 我不知道使用mixins向类添加静态方法的任何方法,但您可以通过MetaClass.static属性向类添加静态方法.这是一个添加静态fqn()方法的示例,该方法打印类的完全限定名称

Class.MetaClass.static.fqn = { delegate.name }assert String.fqn() == "java.lang.String"

如果你想将fqn()(和其他静态方法)添加到几个类(例如List,file,Scanner),你可以做类似的事情

def staticmethods = [fqn: {delegate.name},fqnUpper: {delegate.name.toupperCase()}]    [List,Scanner].each { clazz ->    staticmethods.each{methodname,methodImpl ->        clazz.MetaClass.static[methodname] = methodImpl    }}
总结

以上是内存溢出为你收集整理的如何使用groovy mixin添加静态方法全部内容,希望文章能够帮你解决如何使用groovy mixin添加静态方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220469.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存