为指定类扩展额外的方法
1、Flutter项目根目录创建一个analysis_options.yaml文件,然后添加以下内容到文件中。(若无法运行)
analyzer:
enable-experiment:
- extension-methods
2、创建.dart文件
extension 自定义名称 on 指定类{ 可以是第三方库的类
自定义方法等,通过this获取类本身的方法
}
3、使用
导入该文件
实例对象.扩展的方法
代码示例:
extension ParseNumbers on String {
int parseInt() {
return int.parse(this);
}
double parseDouble() {
return double.parse(this);
}
}
使用:
final d = '2';
print(d.parseInt());
代码示例:
import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';
extension SharedPreferencesExtension on SharedPreferences {
Future<bool> setJson(String key, Map<String, dynamic> json) {
assert(json != null);
assert(key != null);
var value = jsonEncode(json);
return this.setString(key, value);
}
Map<String, dynamic> getJson(String key) {
assert(key != null);
var value = this.getString(key);
var json = jsonDecode(value);
return json;
}
}