我正在创建一个 Kotlin 结构,打算在几款 Android 游戏中重复使用,格式类似:一个网格,多个单元格。根据游戏的不同,单元格将具有不同的可能状态集。状态集将是一个枚举,但内容会因游戏而异。
所以我想要一个像这样的结构:
class Cell(state: Enum) {
...
}
每个游戏的参数state
都会有所不同。
例如,
enum class TicTacToeState{
BLANK, X, O
}
val cell = Cell(TicTacToeState.BLANK)
或者
enum class SeaBattleState{
BLANK, END, SUB, WATER
}
val cell = Cell(SeaBattleState.SUB)
问题是,当我在顶部输入结构时,Android Studio 告诉我“类 Enum<E : Enum> 需要一个类型参数”。
我无法想象我应该将枚举称为什么类型,因为我不知道内容是什么,也不知道在枚举值的上下文中“BLANK”是什么类型。我在 Google 和这里搜索过,但找不到任何页面处理带有类型Enum
声明的类名,而不是使用小写字母enum
将类声明为枚举。
所以我的问题是,当我还不知道枚举是什么时,如何声明一个具有枚举类型参数的 Kotlin 类?