假设我有类(class) someClass
class someClass<Generics> {}
someClass<int> a = someClass<int>();
someClass<String> b = someClass<String>();
someClass c = someClass();
如何检查元素 a,b,c
是同一类型 (someClass
) 吗?在 Dart 中可以吗?
我尝试使用
runtimeType
方法,但类型不同。
最佳答案
实际上与其他语言(如 Java)不同,Dart 在泛型上没有类型删除。这意味着,对象 a
, b
和 c
在你的例子中是 不同种类。
如果你
print(a.runtimeType);
print(b.runtimeType);
print(c.runtimeType);`
你会得到
SomeClass<int>
SomeClass<String>
SomeClass<dynamic>
泛型类型在运行时不会被删除。如果要检查是否所有对象都是
SomeClass
类型,你可以使用print(a is SomeClass);
print(b is SomeClass);
print(c is SomeClass);
这会给你
true
true
true
关于dart - 如果使用泛型的类型相同,如何比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59383308/