我正在尝试将具有类型参数的类的对象转换为具有更通用类型参数的同一类的对象,如以下 Swift 代码所示:
class ParameterClassA {
}
class ParameterClassB: ParameterClassA {
}
class WorkingClassA<T> {
}
class WorkingClassB: WorkingClassA<ParameterClassB> {
}
let object1 = WorkingClassB()
let object2: WorkingClassA<ParameterClassA> = object1
不幸的是,也许正如预期的那样,这不起作用,因为WorkingClassA<ParameterClassB>
不能“沮丧”成WorkingClassA<ParameterClassA>
——我知道 Java 不允许这样做,我希望 Swift 能够更好地支持这样的结构。
有没有其他方法可以做到这一点是 Swift,还是根本不可接受?对我来说,“向上转换”类型参数似乎很好,但可能有充分的理由不允许它?
谢谢!