Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
声明必须是子类的类型变量-Dart_Dart - Fatal编程技术网

声明必须是子类的类型变量-Dart

声明必须是子类的类型变量-Dart,dart,Dart,科特林代码: Class<? extends Model> someType(); 但是我希望“someType”只能是从模型类扩展而来的类型/类。不能直接实例化,因此任何用抽象类类型化的变量只能用子类初始化。这可能适合您的目的。Dart类型对象不是通用对象。只有一个类型类,无法比较它们的子类型。类型对象对于其他任何东西都是相当无用的 您可能根本不应该使用类型对象。 它们很少是你所需要的,因为它们在大多数情况下是完全无用的。如果您没有使用dart:mirrors,我建议您根本不要使

科特林代码:

Class<? extends Model> someType();

但是我希望“someType”只能是从模型类扩展而来的类型/类。

不能直接实例化,因此任何用抽象类类型化的变量只能用子类初始化。这可能适合您的目的。

Dart
类型
对象不是通用对象。只有一个
类型
类,无法比较它们的子类型。
类型
对象对于其他任何东西都是相当无用的

您可能根本不应该使用
类型
对象。

它们很少是你所需要的,因为它们在大多数情况下是完全无用的。如果您没有使用
dart:mirrors
,我建议您根本不要使用
Type
对象

那么,为什么首先要存储
类型
值呢? 有没有办法将其存储为类型变量

比如说,为了创建该类型的列表,您需要知道该类型<代码>类型对象不能这样做,但可以使用适当的泛型类型变量

考虑有一个像这样的班级

类MyType{
常量MyType();
///使用[T]作为类型参数执行[action]。
R callWithType(R Function()action)=>action();
//检查和铸造。
布尔isInstance(对象o)=>o是T;
T cast(对象o)=>o作为T;
T安全广播(对象o)=>o为T?o:null;
//子类型检查。
布尔运算符>=(MyType other)=>其他为MyType;
布尔运算符其他>=此;
布尔运算符其他>=此&!(此>=其他);
布尔运算符>(MyType other)=>此>=其他&&!(其他>=此);
布尔运算符==(对象其他)=>
其他是MyType&&this>=其他&&other>=此;
int get hashCode=>T.hashCode;
//不管你想做什么手术。
}
然后,您可以使用这种“类型表示对象”而不是
类型
对象,实际上您可以将其用于实际操作。然后,您还可以为受限类型请求
MyType
对象:

MyType modelType;//仅“模型”的“MyType”对象
//或
无效withType(MyType类型。。。
您仍然只能执行类型变量支持的操作。您不能创建
t
的新实例或查找类的静态成员,这些静态成员只能使用实际的类

Type someType;