flutter - 静态扩展函数在 Dart 中不起作用
问题描述
我想要一个静态扩展功能。我创建了一个,它不起作用。我从教程中复制了一个,它可以工作。
为什么复制的函数对我的函数不起作用?
这是扩展
extension DateTimeExtension on DateTime {
String toDbDate() {
return DbService.dtFormat.format(this);
}
static DateTime parseDbDate(String dbDate) {
return DbService.dtFormat.parse(dbDate);
}
}
// extension from tutorial I followed works
extension ShapeBorderX on ShapeBorder {
static ShapeBorder roundedRectangle(double radius) {
return RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(radius),
),
);
}
}
这就是我使用它的方式
method() {
DateTime.now().toDbDate(); // works
DateTime.parseDbDate("2020-02-01"); // does not work
ShapeBorderX.roundedRectangle(12.0); // works
}
显然我做错了什么,但我不知道是什么..
谢谢你的帮助。
解决方案
好的,我现在看到了。
我必须在扩展而不是在它扩展的类上调用该方法。
DateTimeExtension.parseDbDate(...)
工作正常。
推荐阅读
- c# - System.Data.SqlClient.SqlException:'必须声明标量变量“@SSN”
- css - Chrome 媒体查询故障:媒体查询过早触发
- directory - 用文件夹选择器替换文件夹路径
- java - 在android中获取带有web视图的内容html页面
- tmux - 如何使 tmux.conf 仅根据窗口索引命名窗口而不显示主机名
- django - Django用户重置密码,MongoDB存储用户信息
- typescript - 如何在不是nestjs路由的方法上设置装饰器
- javascript - 如何在反应中将.properties文件转换为json对象
- c# - 如何让程序记住猜测的字母?
- excel - 使用来自 3 个单元格中的 1 个单元格的信息填充数据