flutter - 名称 'string' 不是类型,不能在 'is' 表达式中使用
问题描述
在对返回不同类型对象的函数进行单元测试期间,我需要检查返回对象的类型是否与预期的相同。因此,我需要在一个变量中传递多个类。然后我需要将此变量与is
运算符一起使用来检查类型。
final string = String;
assert('foo' is string);
但我越来越
error: The name 'string' isn't a type and can't be used in an 'is' expression.
我在某处读到一个名为的库Dart:mirrors
可以解决这个问题,但我还没有看到一个实际的例子。
解决方案
我找到了答案。创建我要断言的类型的实例,然后使用runtimeType
属性的技巧。
如果从 a.dart 调用一个类并且User
从 b.dart 调用另一个类User
,则 runtimeType 将不一样
final string = 'anything'.runtimeType;
assert('foo'.runtimeType is string);
推荐阅读
- python - 我正在使用 python3 并且我想翻译一些文本,所以我使用了“googletrans”包,但出现了一些错误
- python - 如何从形状的边缘检测中心线?
- amazon-web-services - 部署到 Elastic Beanstalk 显示 502 错误
- mongodb - 我们可以暂停 Mongo DB atlas 数据库多长时间,多长时间后我们可以再次暂停它
- mysql - 我可以根据一个查询中其他列的值来获取 mySQL DB 中一列的平均值吗?
- python - 需要帮助解决 Python 作业
- azure - 使用新映像更新虚拟机规模集
- powerbi - PowerBI 中的 ARIMA 可视化
- ruby-on-rails - 如何从其他 ip 或 ssid 中查看“rails s”
- javascript - 格式错误:AttributeError:“JsonResponse”对象没有属性“_headers”