我正在尝试从泛型类派生我的类:
class foo<T> {}
class bar : foo<Int> {}
但是这段代码编译失败并出现错误:
Classes derived from generic classes must also be generic
如何避免这个限制?可能吗?
最佳答案
Ssreg,
不幸的是,这是 official :
You can subclass a generic class, but the subclass must also be a generic class.
希望 Apple 在未来的版本中解决这个问题。
与此同时,让我们将此视为利用 aggregation 的机会而不是子类化。
注意:
作为穷人版本的解决方案,可以使用 typealias
:
class foo<T> {}
class bar<Int> : foo<Int> {}
typealias Bar = bar<Int>
这样,就可以像 Apple 已经解决问题一样编写其余代码。
关于class - swift 从泛型类派生的类的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24138359/