包含Java中的枚举集合的方法行为

时间:2018-06-21 11:10:40

标签: java collections enums

有人可以向我解释为什么包含方法在以下代码中返回false吗? 我有两个相同类型的集合。提示可能是这些集合的项目在选项卡中的外观不同。 globalRoles wariable是从json反序列化的(由Jackson库提供)。在这种情况下,变量“ role”的来源实际上是硬编码的值 我故意将代码扩展到多个步骤,以便所有变量值可见。 Debug snapshot

1 个答案:

答案 0 :(得分:0)

好的,这是解决方案,出了什么问题。 getGlobalRoles()返回的值实际上是在用Groovy编写的映射器中初始化的。问题是Groovy毫无例外地将Arralist分配给List变量。该变量是显式键入的,所以我没有期望这种行为。在这些情况下通常会引发异常。然后Java变得疯狂,因为不同类型的变量后面的字符串列表。因此,它与contains方法或等于等值无关。当我尝试使用该集合时,大多数与此操作有关的操作都出错了。