如何在具有泛型类型的类中启用协方差?

阿特里昂

Pet<String> pet = Dog<String>(); 给我一个 invalid_assignment 错误。

class Pet<T> {
  T name;
}

class Dog<T> extends Pet {}

class Cat<T> extends Pet {}

main() {
  Pet<String> pet = Dog<String>();
  List<Pet> pets = List<Dog>();
}

List<Pet> pets = List<Dog>();作品

如何让Pet<String> pet = Dog<String>();生产线无错误地运行?我认为这是协方差,我认为在这篇文章中它解释了如何在 c# 中做到这一点。Dart 是否允许您以某种方式允许协方差?

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/covariance-contravariance/creating-variant-generic-interfaces

阿特里昂

您需要向类及其扩展的类型添加相同的泛型。

class Pet<T> {}
class Dog<T> extends Pet<T> {}

这然后允许

Pet<String> pet = Dog<String>();

因为Dog泛型类型String扩展Pet了泛型类型String

你写的(缺少来自 Pet 的泛型类型)

class Dog<T> extends Pet {}

所以实例化Dog()将与

Dog<String> extending Pet<dynamic> 

dynamic因为如果没有指定,那是泛型的默认类型;向下转换它似乎不是 Dart 中有效且受支持的协方差类型

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有继承和协方差的Java泛型

来自分类Dev

Kotlin中的方差/协方差泛型

来自分类Dev

协方差和泛型类型

来自分类Dev

如何在C#中收集具有泛型类型的静态类的所有“实例”?

来自分类Dev

如何在Swift中从带有类型别名的协议中引用具有约束的泛型类?

来自分类Dev

具有协方差的交点类型

来自分类Dev

我如何在Matlab中的两个变量之间具有正协方差?

来自分类Dev

Java自动返回类型协方差与泛型子类化

来自分类Dev

C#泛型是关键字协方差/协方差类型推断

来自分类Dev

Swift 泛型类、继承和协方差

来自分类Dev

如何在C#中将具有泛型类型的类转换为具有作为泛型类型的对象的类

来自分类Dev

类中具有2个泛型类型的方法,其中1个泛型类型

来自分类Dev

类中具有2个泛型类型的方法,其中1个泛型类型

来自分类Dev

具有泛型的Scala类型类

来自分类Dev

具有接口类类型的泛型

来自分类Dev

当泛型参数具有多种数据类型时,如何在rust中实现泛型?

来自分类Dev

如何使用已知类型作为参数创建具有泛型的泛型类?

来自分类Dev

如何在泛型类中处理可为空的类型

来自分类Dev

如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

来自分类Dev

如何在Java arraylist中存储具有泛型类型的数据

来自分类Dev

如何在C#中对具有抽象内部类型的泛型进行模式匹配?

来自分类Dev

如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

来自分类Dev

如何在没有反射的情况下确定Java中泛型属性的类类型?

来自分类Dev

与C#泛型的协方差

来自分类Dev

相反/协方差和嵌套泛型

来自分类Dev

在具有泛型类型的类中定义的数据类的类型提示

来自分类Dev

如何在泛型类中返回对象的泛型类型?

来自分类Dev

如何在泛型方法中获取泛型类型的类实例

来自分类Dev

具有继承的类类型的泛型列表的类

Related 相关文章

  1. 1

    具有继承和协方差的Java泛型

  2. 2

    Kotlin中的方差/协方差泛型

  3. 3

    协方差和泛型类型

  4. 4

    如何在C#中收集具有泛型类型的静态类的所有“实例”?

  5. 5

    如何在Swift中从带有类型别名的协议中引用具有约束的泛型类?

  6. 6

    具有协方差的交点类型

  7. 7

    我如何在Matlab中的两个变量之间具有正协方差?

  8. 8

    Java自动返回类型协方差与泛型子类化

  9. 9

    C#泛型是关键字协方差/协方差类型推断

  10. 10

    Swift 泛型类、继承和协方差

  11. 11

    如何在C#中将具有泛型类型的类转换为具有作为泛型类型的对象的类

  12. 12

    类中具有2个泛型类型的方法,其中1个泛型类型

  13. 13

    类中具有2个泛型类型的方法,其中1个泛型类型

  14. 14

    具有泛型的Scala类型类

  15. 15

    具有接口类类型的泛型

  16. 16

    当泛型参数具有多种数据类型时,如何在rust中实现泛型?

  17. 17

    如何使用已知类型作为参数创建具有泛型的泛型类?

  18. 18

    如何在泛型类中处理可为空的类型

  19. 19

    如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

  20. 20

    如何在Java arraylist中存储具有泛型类型的数据

  21. 21

    如何在C#中对具有抽象内部类型的泛型进行模式匹配?

  22. 22

    如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

  23. 23

    如何在没有反射的情况下确定Java中泛型属性的类类型?

  24. 24

    与C#泛型的协方差

  25. 25

    相反/协方差和嵌套泛型

  26. 26

    在具有泛型类型的类中定义的数据类的类型提示

  27. 27

    如何在泛型类中返回对象的泛型类型?

  28. 28

    如何在泛型方法中获取泛型类型的类实例

  29. 29

    具有继承的类类型的泛型列表的类

热门标签

归档