【发布时间】:2018-04-16 10:38:58
【问题描述】:
我的(非编译)枚举通用迭代器代码如下:
class EnumIterator<T: Enum<T>>: Iterator<T>
{
private var cursor = 0
override fun hasNext(): Boolean = cursor < enumValues<T>().size - 1
override fun next(): T = enumValues<T>()[cursor++]
}
IntelliJ IDE 将两个 enumValues 中的 T 标记为红色:
“不能使用 'T' 作为具体类型参数。改用类。”
如何声明类型参数以摆脱错误?
【问题讨论】:
-
确认一下,你想得到一个Iterator
,其中T是一个枚举类型,它的值被迭代了?