使用泛型

时间:2017-06-16 09:31:43

标签: swift generics

在Swift中,我试图创建一个可以扩展另一个类的泛型类,同时继承它。我能用C ++做到如下,但有没有办法在Swift中做同样的事情?

class Atom {};

template<typename Base, typename Extension>
class Extend: Base {
    Extension _value;
};

int main() {
    return 0;
}

我一直试图应用的一种方法是面向协议的设计,但它似乎无法接受类并扩展它。我达到的最好的方法是手动创建扩展,并声明它扩展Atom,但此时,我只需创建另一个类并手动添加相应的属性。

1 个答案:

答案 0 :(得分:2)

一种方法是在编译或运行时为子类生成代码。检查这些问题的答案: How to generate code dynamically with annotations at build time in Java?Generating, compiling and using Java code at run time?。 您可以向基类添加一个自定义泛型方法,该方法将被每个子类(在生成的代码中)覆盖,并且它可以返回Object。如果值得麻烦的话,这将是一种有效的方法。