1

我有一个密封类声明如下:

sealed class SealedClass {
  object Pizza: SealedClass()
  data class Hamburger(val hasCheese: Boolean): SealedClass()
}

我有一个将 SealedClass 键映射到字符串值的映射,并且我想在访问映射中的 SealedClass.Pizza 键时检索特定字符串,但是当我尝试使用时访问 SealedClass.Pizza 条目的结果返回 null我在代码的不同段中构造的 SealedClass.Pizza 键。

生成的 SealedClass.Pizza 对象似乎具有不同的哈希值,这可能可以解释为什么会出现这种情况。打印它们会导致

SealedClass$Pizza@4cf4ae53SealedClass$Pizza@21773412

我的印象是对象在一个类的所有实例中都是相同的,所以我不知道为什么它们有不同的哈希值,但无论如何,我希望能够使用这两个SealedClass.Pizza对象来访问相同的字符串。我该怎么做?

4

0 回答 0