HarmonyOS 项目中泛型的使用
泛型(Generics)概述
泛型是一种编程语言特性,它支持类型参数化,使得定义的类、接口和方法可以适用于多种类型,而不仅仅是固定的一种类型。
理解泛型
泛型允许在定义接口时,让参数的类型更加灵活,从而使得功能更加强大。简而言之,泛型提供了一种方式,让代码能够适应不同的数据类型,而不需要为每种数据类型编写重复的代码。
项目中使用泛型的例子
在项目中,泛型被用于实现数据源接口 IDataSource
,以支持不同类型的数据实体对象数组。这里有一个通用的数据源类 CommonDataSource
,它实现了 IDataSource
接口,并使用泛型 T
来表示可以是任何类型的数据实体。
export class CommonDataSource<T> implements IDataSource { private dataArray: T[] = []; private listeners: DataChangeListener[] = []; constructor(element: T[]) { this.dataArray = element; } public getData(index: number): T { return this.dataArray[index]; } public totalCount(): number { return this.dataArray.length; } public addData(index: number, data: T[]): void { this.dataArray = this.dataArray.concat(data); this.notifyDataAdd(index); } public pushData(data: T): void { this.dataArray.push(data); this.notifyDataAdd(this.dataArray.length - 1); } // 其他方法... }
使用场景
-
页面1
LazyForEach(new CommonDataSource<ProductDataModel>(productData), (item: ProductDataModel) => { ListItem() { // ... } }); -
页面2
LazyForEach(new CommonDataSource<Commodity>(this.commodityList), (item: Commodity) => { ListItem() { // ... } });
网络请求中的泛型应用
网络请求的入参和返回值的类型判断也会用到泛型,以确保类型安全和提高代码的可读性。
使用示例见:HarmonyOS 简易封装网络请求框架
泛型在现代编程语言中得到了广泛的支持和应用,它们为开发者提供了一种强大的工具,以创建更加灵活和可重用的代码。
分类:
【HarmonyOS】
标签:
HarmonyOS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2014-04-25 android:installLocation简析