简单的情况,int确实是一个数字。
我正在创建通用class test<T>
我想测试T以查看它是否继承自数字(或Dart的情况下为num)。
基于对象,文档中的Object > num > int
,所以起初我认为:如果T is num
为T
,int
会起作用。测试int is num
显示为false。我必须使用另一个关键字而不是is
来确定它是否是特定类的子级。
我试图设置它,如果T是num的子节点,它将处理比较的方式与它们是字符串的方式不同。
对我来说,这可以追溯到 is-a 和有一个关系的多态继承设计。
答案 0 :(得分:1)
答案 1 :(得分:0)
如何测试类型及其类型参数。
import 'package:type_helper/type_helper.dart';
void main() {
var test = Test<int>();
test.testAgain<String>();
if (isTypeOf<Test, Test>()) {
print('<Test> is type of <Test>. Haha. Well it is obvious. :-)');
}
}
class Test<T> {
Test() {
if (isTypeOf<T, int>()) {
print('<T> is type of <int>. It is very good. :-)');
}
}
void testAgain<T2>() {
if (isTypeOf<T2, String>()) {
print('<T2> is type of <String>. It is also good. :-)');
}
}
}
结果:
<T> is type of <int>. It is very good. :-)
<T2> is type of <String>. It is also good. :-)
<Test> is type of <Test>. Haha. Well it is obvious. :-)