在将Flutter工程转为 null safe的时候,遇到下面的错误:
error: The argument type 'Object' can't be assigned to the parameter type 'ImageProvider<Object>'.
这个问题不是太好处理,在排查后用下面的方法解决了问题:
Object imageSource;
#修改前:
ImageProvider image = imageSource is Asset
? AssetThumbImageProvider(imageSource)
: CachedNetworkImageProvider(imageSource) ;
#修改后:
ImageProvider image = ( imageSource is Asset
? AssetThumbImageProvider(imageSource)
: CachedNetworkImageProvider(imageSource)
) as ImageProvider ;
在此处 “ :” 左右两侧对象的类型分别是AssetThumbImageProvider和CachedNetworkImageProvider,两个对象的类型不相同。虽然AssetThumbImageProvider 和 CachedNetworkImageProvider 都是 ImageProvider的子类,但是dart在此处不会自动处理,需要手动用“as”作强制类型转换为ImageProvider。