Flutter中如何不修改原数组将字符串转为GenderData类?
解决Flutter中字符串转自定义GenderData类的类型不匹配问题
你不能用as强制转换字符串到GenderData,因为这俩是完全不相关的类型——as只适用于原本就是目标类型实例的对象(比如子类转父类),字符串压根不是GenderData的实例,强制转换只会报错。
不需要修改原数组,直接用字符串作为参数创建GenderData实例就行,你的GenderData类已经提供了带name参数的构造函数,刚好可以用:
修改initState里的赋值代码:
@override void initState() { super.initState(); // 用字符串创建GenderData实例 currentName = GenderData(name: nameList[0]); }
如果需要把整个字符串数组批量转成GenderData列表,也不用改原数组,用map方法转换就行:
List<GenderData> genderDataList = nameList.map((name) => GenderData(name: name)).toList();
这样原数组nameList完全保持不变,同时得到了需要的GenderData类型对象。
内容的提问来源于stack exchange,提问作者Hadi Majidi
相关产品推荐
相关产品推荐

