在groovy ++中覆盖重载运算符时调用super

这是我的代码
@Typed class FooMap extends LinkedHashMap {
  def doSomeFoo() {
    // ...
  }

  FooMap plus(Collection coll) {
    super.plus(coll)
  }
}
虽然它在普通的Groovy中工作,但用Groovy ++编译它会产生错误:
Cannot reference default groovy method 'plus' using 'super'. Call the static method instead
。我不知道如果它是Groovy ++中的错误,或者它意味着以这种方式工作。无论如何,我想以打字的方式打电话给
super
。我该如何解决这种情况? 我想要这样一个方法的原因是我希望这个代码能够编译。
FooMap map = new FooMap() + [bar: 42]
map.doSomeFoo()
    
已邀请:
我不确定为什么groovy ++不允许调用super方法,但它引用的静态方法是
org.codehaus.groovy.runtime.DefaultGroovyMethods
import org.codehaus.groovy.runtime.DefaultGroovyMethods

assert DefaultGroovyMethods.plus([one: 1], [two: 2]) == [one: 1, two: 2]
你可以通过调用它来获得你正在寻找的行为。     

要回复问题请先登录注册