在Swift中,我试图创建一个可以扩展另一个类的泛型类,同时继承它。我能用C ++做到如下,但有没有办法在Swift中做同样的事情?
class Atom {};
template<typename Base, typename Extension>
class Extend: Base {
Extension _value;
};
int main() {
return 0;
}
我一直试图应用的一种方法是面向协议的设计,但它似乎无法接受类并扩展它。我达到的最好的方法是手动创建扩展,并声明它扩展Atom
,但此时,我只需创建另一个类并手动添加相应的属性。
答案 0 :(得分:2)
一种方法是在编译或运行时为子类生成代码。检查这些问题的答案: How to generate code dynamically with annotations at build time in Java?和Generating, compiling and using Java code at run time?。 您可以向基类添加一个自定义泛型方法,该方法将被每个子类(在生成的代码中)覆盖,并且它可以返回Object。如果值得麻烦的话,这将是一种有效的方法。