Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 飞镖级';字符串';没有实例方法';铸造';_Flutter_Dart - Fatal编程技术网

Flutter 飞镖级';字符串';没有实例方法';铸造';

Flutter 飞镖级';字符串';没有实例方法';铸造';,flutter,dart,Flutter,Dart,我编写了一个dart方法,该方法采用泛型类型T,然后尝试将动态类型强制转换为T。(编辑:我已经从等式中删除了泛型,而从动态转换为字符串仍然失败,并出现了相同的错误。) 在这个特定场景中,我将传递一个字符串作为T 下面一行抛出错误 T result = value.cast<T>(); T result=value.cast(); 完整的代码如下 class JsonObject{ final Map<String, dynamic> _map; Js

我编写了一个dart方法,该方法采用泛型类型T,然后尝试将动态类型强制转换为T。(编辑:我已经从等式中删除了泛型,而从动态转换为字符串仍然失败,并出现了相同的错误。)

在这个特定场景中,我将传递一个字符串作为T

下面一行抛出错误

 T result = value.cast<T>();
T result=value.cast();
完整的代码如下

class JsonObject{
    final Map<String, dynamic> _map;
    JsonObject(this._map);

    T getValue<T>(String key) {
        dynamic value = _map[key];
        if (value == null)
            throw new JsonParseException._("JsonMap: can not find value with key = "+key);
        T result = value.cast<T>();
        if (result == null)
            throw new JsonParseException._("JsonMap: value with key = "+key+" is not of requested type "+T.toString());
        return result;
    }

    String getString(String key) => getValue<String>(key);
}
类JsonObject{
最终地图(地图),;
JsonObject(这张地图);
T getValue(字符串键){
动态值=_映射[键];
如果(值==null)
抛出新的JsonParseException.979;(“JsonMap:无法使用key=“+key”找到值);
T结果=value.cast();
如果(结果==null)
抛出新的JsonParseException.((“JsonMap:value with key=“+key+”不是请求的类型”+T.toString());
返回结果;
}
字符串getString(字符串键)=>getValue(键);
}
我得到的错误如下。在第一次调用应用程序代码之后,我已经修剪了堆栈跟踪

06-25 09:34:04.883 I/颤振(7755):类“String”没有实例 方法“cast”。06-25 09:34:04.883颤振(7755):接收器:“foo1” 06-25 09:34:04.883我/颤振(7755):尝试呼叫:cast() 06-25 09:34:04.920 I/flatter(7755):当抛出异常时, 这是堆栈:06-25 09:34:05.004 I/颤振(7755):#0
Object.noSuchMethod(dart:core patch/Object_patch.dart:50:5)06-25 09:34:05.011 I/颤振(7755):#1 JsonObject.getValue (包:my_app/Util/json_parser.dart:62:26)


cast
List
s和
Iterable
s上的一种方法,而不是一般类型上的方法。您正在以的身份查找

替换
T result=value.cast()
T结果=值为T。如果
不是
t
,则会引发此错误。要么接受它,要么抓住它并抛出你的
JsonParseException