2016-02-01 15 views
0

简单的情况下,int是一个真正的数字。我如何检查其父类的类型?

林创建通用class test<T>

,我想试验T,看是否其从数(或num在飞镖的情况下)继承。

基于对象,Object > num > int在文档中,所以起初我在想:T is num将工作,如果Tint。测试int is num显示错误。必须有另一个关键字,我需要使用它来代替is来确定它是否是特定班级的孩子。

我试图设置它,以便如果T是num的孩子,它将处理比较,如果他们是字符串不同。

对我来说,这又回到了多态性继承的设计是,一个有-一个 relationshis。

+0

难道你真的想检查是否'Type'实例是,如果一个值的运行时类型是'num'的亚型'num'的一种亚型?像http://stackoverflow.com/questions/31682371? –

回答

1

使用int is num您测试Type的实例是否为num的子类型,该子类型正确报告为false

你想测试的是5 is num

尝试在DartPad

+0

所以在我的通用性的情况下,我会检查'_value是num'而不是'T是num'这听起来不错。我只是不确定你是否可以用类来完成它,或者如果它只是实例化的对象。谢谢。 – Fallenreaper

+0

作为一个后续,如果你做了这样的事:'int test;',你不能测试'test'作为一个num,因为当分配空间时,它不会被设置为任何东西,返回false; – Fallenreaper

+0

您需要使用反射('dart:mirrors'或可反射包)的类。 –