如何检查 class 是否基于其他摘要 class
How to check if class is based on other abstract class
当实例仅扩展 B
但类型为 C
.[=20= 时,如何检查类型为 A
的对象是否扩展类型为 B
]
例如:
abstract class A {
}
abstract class B extends A {
}
class C extends B {
}
A myA = C();
我想测试 myA
是否扩展 B
class(在示例中)。
测试了以下内容
if (myA.runtimeType is B) // return false
if (myA.runtimeType == B) // return false
if (myA == B) // return false
您需要删除 .runtimeType
并像这样使用 is
运算符
if (myA is B) // return true
如果 myA
是扩展 B
,即使它不是 B
的直接实例,语句也会 return true
像你想要的那样。
当实例仅扩展 B
但类型为 C
.[=20= 时,如何检查类型为 A
的对象是否扩展类型为 B
]
例如:
abstract class A {
}
abstract class B extends A {
}
class C extends B {
}
A myA = C();
我想测试 myA
是否扩展 B
class(在示例中)。
测试了以下内容
if (myA.runtimeType is B) // return false
if (myA.runtimeType == B) // return false
if (myA == B) // return false
您需要删除 .runtimeType
并像这样使用 is
运算符
if (myA is B) // return true
如果 myA
是扩展 B
,即使它不是 B
的直接实例,语句也会 return true
像你想要的那样。