首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Dart类“String”没有实例方法“cast”

Dart类“String”没有实例方法“cast”
EN

Stack Overflow用户
提问于 2019-06-26 02:24:44
回答 1查看 3.5K关注 0票数 1

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

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

下面的代码行抛出错误

 T result = value.cast<T>();

完整的代码如下:

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);
}

我得到的错误如下所示。在第一次调用我的应用程序代码后,我修剪了堆栈跟踪。

06-25 09:34:04.883 I/flutter ( 7755):类'String‘没有实例方法'cast’。06-25 09:34:04.883 I/flutter ( 7755):Receiver:"foo1“06-25 09:34:04.883 I/flutter ( 7755):已尝试调用: cast() 06-25 09:34:04.920 I/flutter ( 7755):抛出异常时,这是堆栈: 06-25 09:34:05.004 I/flutter ( 7755):#0

Object.noSuchMethod (dart:core-patch/object_patch.dart:50:5) 06-25 09:34:05.011 I/flutter ( 7755):#1 JsonObject.getValue (package:my_app/Util/json_parser.dart:62:26)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-26 09:22:44

castList%s和Iterable%s上的方法,不是常规类型上的方法。您正在寻找as

T result = value as T;替换T result = value.cast<T>();。如果value不是T,就会抛出这个异常。要么接受它,要么抓住它并抛出你的JsonParseException

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56760006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档