泛型部分 新版flutter编译问题
来源:5-15 带你了解Dart泛型在Flutter中的应用
慕村0493939
2021-05-24
应该又是新版编译的问题,所以问一下,照着视频写编译会报错。
class Cache<T>{
static final Map<String, Object> _cached = Map();
void setItem(String key, T value){
//A value of type 'T' can't be assigned to a variable of type 'Object'.
_cached[key] = value;
}
T getItem(String key){
//A value of type 'Object?' can't be returned from the method 'getItem' because it has a return type of 'T'.
return _cached[key];
}
}
是不是因为新版flutter,object和null分别不再是所有类的父类和子类,所以会报错,这段代码我改成
class Cache<T>{
static final Map<String, Object> _cached = Map();
void setItem(String key, T value){
_cached[key] = value!;
}
T getItem(String key){
return _cached[key] as T;
}
}
不知道行不行
写回答
2回答
-
拉托尼
2021-10-30
// static final Map<String,Object> _cached = Map(); static final _cached = Map();
这样就可以了
00 -
CrazyCodeBoy
2021-05-25
从log上看是null安全的提示,在_cached[key]后加个!
或将T getItem(String key)变成T? getItem(String key)
022022-02-18
相似问题