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. 页面1

    LazyForEach(new CommonDataSource<ProductDataModel>(productData), (item: ProductDataModel) => {
    ListItem() {
    // ...
    }
    });
  2. 页面2

    LazyForEach(new CommonDataSource<Commodity>(this.commodityList), (item: Commodity) => {
    ListItem() {
    // ...
    }
    });

网络请求中的泛型应用

网络请求的入参和返回值的类型判断也会用到泛型,以确保类型安全和提高代码的可读性。
使用示例见:HarmonyOS 简易封装网络请求框架

泛型在现代编程语言中得到了广泛的支持和应用,它们为开发者提供了一种强大的工具,以创建更加灵活和可重用的代码。

posted @   西北野狼  阅读(190)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2014-04-25 android:installLocation简析
点击右上角即可分享
微信分享提示