Groovy - 设置您自己的整数属性

标签 groovy integer

我刚刚开始学习 Groovy,想知道是否可以为整数设置自己的属性。例如,

 def a = 34.5.plus(34.34)
 def b = 5.64.minus(3.43)
 def c = 12.64.multiply(33.43)

上面有一些方法,例如plusminusmultiply 如果我想为这样的整数定义一些我自己的方法该怎么办。

我搜索了Google,但找不到太多相关信息。

最佳答案

当然,您可以将方法添加到 Integer 的元类中。

这是一个例子:

Integer.metaClass.zeds = { -> 'z' * delegate }

assert 3.zeds() == 'zzz'

如果您愿意,您还可以向单个整数实例添加方法,即:

Integer num = 4
num.metaClass.halved = { -> delegate / 2.0 }

assert num.halved() == 2.0

您还可以通过扩展方法向类添加方法,其中can be found over here有一个很好的解释

应该注意的是(正如您最初将这个问题标记为 Java 一样),显然,Java 代码将不知道这些事情,因为它不知道元类

关于Groovy - 设置您自己的整数属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37461278/

相关文章:

java - 序列化变量的虚拟值

java - 如何对数组列表的所有元素求和

grails - Grails Spock测试特定异常

grails - grails中根据父属性对查询结果进行排序

当父级是 Map 或 Collection 时,Groovy GString 渲染不会调用重写的 toString() 方法

java - 将 long 列表转换为 int java 8 列表

java - 为什么 Java 中 (Integer) 222 != (Integer) 222 ?

JavaScript 将小数转换为整数

grails - 如何在不导致 StackOverflowError 的情况下覆盖子类中的 setter?

groovy - 在Gradle子项目中找不到属性