You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将List<TenancyEntity>转换为List<Tenancy>?Flutter类型转换报错

解决List转List的类型转换异常问题

问题原因

你用cast<Tenancy>()失败的核心原因是:TenancyEntity和Tenancy是完全独立的两个类,没有继承或实现关系。cast方法仅支持在有类型兼容关系的对象间转换(比如子类转父类),直接跨独立类强制转换必然抛出类型不匹配的异常。

正确实现方式

你的TenancyEntity已经定义了toTenancy()方法,正好可以用来完成实体到领域模型的转换。只需要通过List的map方法遍历转换每个元素,再转为List即可:

var a = await _tenancyLocalDataSource.getTenancyList();
// 遍历每个TenancyEntity,调用toTenancy()转换,再转为List<Tenancy>
var b = a!.map((entity) => entity.toTenancy()).toList();
debugPrint(b.toString());

空安全优化(可选)

如果getTenancyList()可能返回null,可以用空合并运算符处理空情况,避免空指针异常:

var a = await _tenancyLocalDataSource.getTenancyList();
var b = a?.map((entity) => entity.toTenancy()).toList() ?? [];
debugPrint(b.toString());

内容的提问来源于stack exchange,提问作者AI.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:56:07