繁体   English   中英

想要使用.contains()或'in'检查对象是否在常规列表中

[英]Want to check if object is in groovy list using .contains() or 'in'

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列表,将空列表与创建的对象进行比较。 自然测试失败。 我使用插入列表中的new动态创建一个新对象。 然后,我将列表与创建的第一个对象进行比较,该对象不属于列表,而是包含或通过。 有人可以阐明一些方法吗? 还是为什么?

AST“ EqualsAndHashCode”仅使用类中的“属性”。 常规上,属性声明时不带修饰符(“ public”),并且自动生成getter / setter。

在您的示例中,将public String name更改为String name

请参阅: Groovy中的“属性”是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM