dart 有人能告诉我在Getit库中使用extends〈T extends Object>时发生了什么吗

krugob8w  于 2023-04-27  发布在  其他
关注(0)|答案(1)|浏览(113)

this image depicts the functions inside Getit package in flutter
1 .我需要知道T extends Object的用法,或者任何以这种格式出现的东西会发生什么
我试着实现Getit,它是好的,但我渴望了解它里面的概念

polhcujo

polhcujo1#

符合T extends Object的类型不能为nullable或dynamic。下面是一个简单的函数f的例子,可以演示可以使用什么:

T f<T extends Object>(T value) => value;

当调用f时,泛型为dynamicObject?,您将获得编译错误:

var foo = f<dynamic>(1);
// error:   ^^^^^^^
// 'dynamic' doesn't conform to the bound 'Object' of the type parameter 'T'.
// Try using a type that is or is a subclass of 'Object'.

var bar = f<Object?>('');
// error:   ^^^^^^^
// 'Object?' doesn't conform to the bound 'Object' of the type parameter 'T'.
// Try using a type that is or is a subclass of 'Object'.

GetIt使用该类型约束,以便在使用它们的API时,您可以正确匹配存储在服务定位器中的类型。

相关问题