Groovy:访问class.value而不调用getValue()

bq3bfh9z  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(78)

我找不到有关此问题的信息。我编写了一个DataType类,并希望将value属性作为默认值返回

MyInteger{
  Integer value

  MyInteger(Integer iv)
  { 
     this.value = iv
  }
}

如何在不调用getValue()的情况下获取值?

MyInteger i = new MyInteger(5)
print i.value //works
print i.getValue() //works
print i //this is what I want to achieve
Integer realInt = i //or more specific this

标准整数能够做到这一点,但如何做到呢?谢谢您的提示!

cfh9epnr

cfh9epnr1#

不确定您的意图是什么,但可以创建一个“新整数”,并按如下方式使用:

@groovy.transform.TupleConstructor()
class MyInteger extends Number {

  Integer value

  @Override
  int intValue() {
    value.intValue()
  }

  @Override
  long longValue() {
    value.longValue()
  }

  @Override
  float floatValue() {
    value.floatValue()
  }

  @Override
  double doubleValue() {
    value.doubleValue()
  }
}

def my = new MyInteger(4)

assert my.value == 4
assert my.getValue() == 4

int integer = (int)my
assert integer == 4

相关问题