代码如下:
import 'package:shared_preferences/shared_preferences.dart';
sharedUtil(String key,Object dataType,Object data) async{
SharedPreferences prefs=await SharedPreferences.getInstance();
switch(dataType){
case bool:
prefs.setBool(key, data);break;
//other types...
}
}
它报告无法将参数类型"Object"分配给参数类型"bool*"。我不知道如何转换它的类型非常感谢。
此错误是因为setBool
方法需要bool作为数据,但您的数据是Object
的类型。可以使用类型转换运算符(as(将类型从Object
转换为bool
。
按如下方式更改代码。
import 'package:shared_preferences/shared_preferences.dart';
sharedUtil(String key,Object dataType,Object data) async{
SharedPreferences prefs=await SharedPreferences.getInstance();
switch(dataType){
case bool:
prefs.setBool(key, data as bool);break;
//other types...
}
}
我不知道这是否是一个正确的答案。我在数据后添加as bool
sharedAddData(String key,Object dataType,Object data) async{
SharedPreferences prefs=await SharedPreferences.getInstance();
switch(dataType){
case bool:
prefs.setBool(key, data as bool);break;
case double:
prefs.setDouble(key, data as double);break;
case int:
prefs.setInt(key, data as int);break;
case String:
prefs.setString(key, data as String);break;
case List:
prefs.setStringList(key, data as List<String>);break;
default:
prefs.setString(key, data as String);break;
}
}