我想在 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;
  }
}