flutter - 如果对象不为空,则调用方法(将空安全与 void 方法一起使用)
问题描述
有没有办法做空这样的事情? 打电话给我()? 因为没有void之类的类型?因此调用此方法 null 对象会导致上述错误。
void main(List<String> arguments) {
User? user;
print(user?.callMe()); //This expression has a type of 'void' so its value can't be used.
}
class User {
String name;
User(this.name);
void? callMe() {
print('Hello, $name');
}
String? foo(){ // sound null safety String method
return name;
}
}
解决方案
您应该从'方法返回 a String
(或者String?
如果您愿意,但在这种情况下不是必需的):User
callMe
void main(List<String> arguments) {
User? user;
print(user?.callMe());
}
class User {
String name;
User(this.name);
String callMe() {
return 'Hello, $name';
}
}
这是因为print
方法接受 anObject
作为其参数,并且void
不是一个对象,而是String
一个Object
.
推荐阅读
- modal-dialog - 通过后退按钮关闭 Ionic 4 中的模态
- python - Mac Book Pro 视网膜显示器上的枕头
- ubuntu - Visual Studio Code dotnet:找不到命令(Linux mint)
- python - 在 python 中导入 Excel
- testing - 如何在单元测试中摆脱错误 422 laravel?
- python - Python。积分问题。TypeError:只有大小为 1 的数组可以转换为 Python 标量
- dart - 如何在flutter中应用滑动以关闭友好聊天应用程序中的功能
- asp.net-mvc - 如何在 Kendo UI MVC 中与其父级一起保存子级列表?
- python - 使用 Pygame 从 Base64 字符串加载图像
- node.js - loopback - “next()”没有在“beforeRemote”中的正确时间触发?