Limitation with classes derived from generic classes in swift

前端 未结 5 1515
礼貌的吻别
礼貌的吻别 2020-12-08 09:26

I\'m trying to derive my class from generic class:

class foo {}
class bar : foo {}

But this code fails to compile with

5条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-08 10:08

    Ssreg,

    Unfortunately this is official:

    You can subclass a generic class, but the subclass must also be a generic class.

    Let us hope Apple fixes this in a future version.

    Meanwhile, let us see this as an opportunity to exploit aggregation instead of subclassing.

    NOTE:

    As a poor man's version of a solution, one could use typealias:

    class foo {}
    class bar : foo {}
    typealias Bar = bar
    

    This way, the rest of the code can be written just as if Apple already fixed the matter.

提交回复
热议问题