class - swift 从泛型类派生的类的限制

标签 class generics swift

我正在尝试从泛型类派生我的类:

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/

相关文章:

MATLAB Mex C API 检查 mxarray 是否为基类

ios - iOS 中导航栏下的选项卡

ios - ARKit 无摄像头 - XCode

swift - 通过标签值引用 UIButton

c++ - 在父对象上调用成员函数?

java - 同一类中的类似方法

类和模块以及 Lua,哦,我的

Java 泛型 - Class 或 Class<?扩展某些类>

c# - 将 IEnumerable<Derived> 转换为 IEnumerable<BaseClass>

c# - 返回不同类型时是否建议使用多种方法?