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



我是一个试图学习颤振的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包中可用,但我不知道如何正确实现它。

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

Widget 类完美配合使用。 例如,我有一个小部件

class AccountCreationPage extends StatefulWidget {...}

然后我可以检查我的小部件类型的变量是否属于 AccountCreationPage 类(如果它真的是这个类,则给出 true(:

_loginPage is AccountCreationPage ? 'Creation' : ""

尝试使用调试对象的类:

debugprint("$<object name>");

然后手动匹配类类型。

这意味着您将找到is运算符所需的类。

object is <object's class>

您可以使用等于运算符

class MyApp extends StatelessWidget {
@override
bool operator ==(Object o) {
if (identical(this, o)) return true;
return o is MyApp;
}
}

然后检查如下

if (object == MyApp)

根据 Flutter Dart-js-util-library,您可以按如下方式检查:

if (instanceOf(object, MyClass)) {
print ('instance of MyClass');
} else {
print('unknown instance');
}

注意这是仅限 Web 的库,不适用于 iOS 或 Android

相关内容

最新更新