我已经编写了一个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)
https://stackoverflow.com/questions/56760006
复制相似问题