gpt4 book ai didi

dart - 如何检查对象的类是否在 Dart 中包含 mixin?

转载 作者:行者123 更新时间:2023-12-04 18:08:22 25 4
gpt4 key购买 nike

如何检查对象的类是否包含 mixin?例如:

class AClass extends Object with MyMixin {}
class BClass extends Object {}

classIncludesMixin(new AClass(), 'MyMixin'); // => true
classIncludesMixin(new BClass(), 'MyMixin'); // => false

这个应该是什么 classIncludesMixin()方法以使其工作?

最佳答案

您可以简单地使用类型检查 o is MyMixin (对于继承和实现也是如此)。

如果你真的需要检查 mixin 子句,你必须使用 dart:mirrors :

bool classIncludesMixin(o, String mixinName) {
var c = reflect(o).type;
while (c != null) {
var m = c.mixin;
if (c != m && m.simpleName == new Symbol(mixinName)) return true;
c = c.superclass;
}
return false;
}

关于dart - 如何检查对象的类是否在 Dart 中包含 mixin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com