import groovy.transform.EqualsAndHashCode;
@EqualsAndHashCode(includes="name")
class Activity {
public String name
public buildings = []
public rooms = [] as Set
Activity(name) {
this.name = name
}
}
thisActivity=new Activity("activity")
activityRegistry = []
// is false correct
activityRegistry.contains(thisActivity)
// add new item activity2
activityRegistry << new Activity("activity2")
// is true?????
activityRegistry.contains(thisActivity)
这段代码非常简单,我创建了一个activityRegistry列表,我将空列表与我创建的对象进行比较。自然测试失败。我使用我插入列表中的新对象动态创建一个新对象。我将列表与创建的第一个对象进行比较,该对象不是列表的一部分,包含或传递。有人可以解释一下如何?或者为什么?
答案 0 :(得分:4)
AST“EqualsAndHashCode”仅使用该类中的“属性”。在groovy中声明的属性没有修饰符('public'),并且自动生成getter / setter。
在您的示例中,将String name
更改为^(?:(?:{\w+\??}|\w+)\/)+$
。