操作符的Groovy如何工作?

Groovy“in”操作符在不同的情况下似乎意味着不同的东西.有时x中的x表示y.contains(x),有时似乎称为y.isCase(x).

Groovy如何知道要调用一个? Groovy知道有哪些使用.contains方法的类或一组类?还是由一种方法存在触发的行为?是否有任何情况下,运算符完全变成其他东西?

解决方法

我做了一些实验,看起来像in操作符是基于isCase的方法,只是如下面的代码所示

class MyList extends ArrayList {
    boolean isCase(Object val) {
        return val == 66
    }
}

def myList = new MyList()
myList << 55
55 in myList // Returns false but myList.contains(55) returns true     
66 in myList // Returns true but myList.contains(66) returns false

对于JDK集合类,我猜这只是似乎in操作符是基于contains(),因为isCase()调用这些类的contains().

相关文章

背景:    8月29日,凌晨4点左右,某服务告警,其中一个...
https://support.smartbear.comeadyapi/docs/soapui/steps/g...
有几个选项可用于执行自定义JMeter脚本并扩展基线JMeter功能...
Scala和Java为静态语言,Groovy为动态语言Scala:函数式编程,...
出处:https://www.jianshu.com/p/ce6f8a1f66f4一、一些内部...
在运行groovy的junit方法时,报了这个错误:java.lang.Excep...