我想在 flutter 中使用共享首选项,但是 "Object" 类型无法分配给 "bool"
I want to use shared preferences in flutter, but "Object" type can not be assigned to "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);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...
}
}
不知道对不对。
我在data
后面加上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;
}
}
这样的代码:
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...
}
}
不知道对不对。 我在data
后面加上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;
}
}