Flutter:如何检查对象是否是类的实例(有状态或无状态小部件)

时间:2018-05-30 11:13:31

标签: flutter

我是一名试图学习扑动的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包中找到,但我不知道如何正确实现它。

任何帮助都会很棒。提前谢谢。

4 个答案:

答案 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)