我是一名试图学习扑动的Android开发人员。我一直在检查对象是否是类的实例(有状态或无状态小部件)。
在Java中我们使用
if (object instanceOf MyClass) {
// object is an instance of MyClass
} else {
// object is not an instance of MyClass
}
但我不知道如何在颤抖中做到这一点。
到目前为止,我已经尝试过,
if (object is MyClass) {
// object is an instance of MyClass
} else {
// object is not an instance of MyClass
}
但这总是错误的。
我已经看到了另一种可能的方法new isInstanceOf<MyClass>()
,它可以在package:matcher/matcher.dart
包中找到,但我不知道如何正确实现它。
任何帮助都会很棒。提前谢谢。
答案 0 :(得分:2)
尝试使用调试对象的类:
debugprint("$<object name>");
然后手动匹配类类型。
这意味着您将找到is
运算符所需的类。
object is <object's class>
答案 1 :(得分:0)
是非常适合Widget类。 例如,我有一个小部件
class AccountCreationPage extends StatefulWidget {...}
然后,我可以检查Widget类型的变量是否属于AccountCreationPage类(如果确实是此类,则为true):
_loginPage is AccountCreationPage ? 'Creation' : ""
答案 2 :(得分:0)
根据Flutter Dart-js-util-library,您可以进行以下检查:
if (instanceOf(object, MyClass)) {
print ('instance of MyClass');
} else {
print('unknown instance');
}
注意:这是仅用于网络的库,不适用于iOS或Android
答案 3 :(得分:0)
您可以使用等号运算符
class MyApp extends StatelessWidget {
@override
bool operator ==(Object o) {
if (identical(this, o)) return true;
return o is MyApp;
}
}
然后检查如下
if (object == MyApp)