Dart仿制药未按照文件进行具体化

Dart仿制药未按照文件进行具体化,dart,Dart,我试图传递一个类型以利用类型信息,但那个类型似乎并没有传递 我回到文档,再次检查Dart泛型是否已具体化,根据文档,它们是: 我在一个响应上调用Hyde,该响应变形了响应对象的内容: response.hydrate<BoqVO>(); 。。。但事实并非如此 替换response.hydrome()带有response.hydrate(新的BoqVO())并将方法签名更改为 void hydrate(T t) { 如果我现在使用小写的t,那么它是可以工作的,但是不必为了使具体化

我试图传递一个类型以利用类型信息,但那个类型似乎并没有传递

我回到文档,再次检查Dart泛型是否已具体化,根据文档,它们是:

我在一个响应上调用Hyde,该响应变形了响应对象的内容:

response.hydrate<BoqVO>();
。。。但事实并非如此

替换
response.hydrome()带有
response.hydrate(新的BoqVO())
并将方法签名更改为

void hydrate(T t) {
如果我现在使用小写的
t
,那么它是可以工作的,但是不必为了使具体化的泛型可用而实例化对象

你知道Dart为什么这样做,或者我缺少什么使具体化的泛型正确工作吗


PS:我不是在Dart
2
上,但目前在Dart
1.24.3
上,通用集合从一开始就得到了支持,它们得到了一些类型支持,但是通用方法只是在Dart 1上进行了实验,具体的类型参数只在Dart 2的预发行版中添加。

正如Günther Zöchbauer所说,类型参数在Dart 1.24中不起作用

下面解释了如果在Dart 2.0中尝试相同的代码会发生什么情况,因为Dart 2.0不正确地使用了类型参数,因此也无法工作

代码
T.runtimeType
T
视为一个表达式。当一个类型(包括一个类型参数)用作表达式时,它将计算为类
type
的一个实例。打印的是
类型
对象的运行时类型(其中
\u type
类型
的内部平台实现)。 要打印真正的类型,只需打印(T)
(它仍然将
T
转换为
type
对象,但它表示类型
BoqVO
,并带有包含
BoqVO
名称的
toString


同样,对于
T是BoqVO
,您将
T
评估为
Type
对象,并且由于
Type
未实现
BoqVO
,因此该测试始终为假。没有简单的方法来测试类型参数的类型是否实现了特定的其他类型,但是您可以绕过它,因为
[]是List

您在上面插入的文档部分也是来自Dart 1.x?在Dart 1中,类型大多在运行时被忽略。如果我在
Dart 1.24
Dart 2
之间更改下拉列表,我会看到完全相同的部分,这两个部分都说泛型是可信赖的,我相信你,但是如果你参考特定文档,插入指向它们的链接会很有帮助。你的代码不是关于集合,这是关于泛型方法类型参数的,它们在Dart 1中肯定没有具体化。
void hydrate(T t) {