HarmonyOS 方法重载

类似其他系统中方法或是构造函数的重载,在HarmonyOS 中如何实现,java实现如下:

public class Test {
    public Test() {
    }

    public Test(int i) {
    }

    public Test(int i, String s) {
    }

    public void FunctionTest(int i) {
    }

    public void FunctionTest(int i, String s) {
    }

    public static class Test2 {
        public static void main(String[] args) {
            new Test(5).FunctionTest(5);
            new Test().FunctionTest(3, "Harmony");
        }
    }
}

我们开发的SDK,集成方期望尽可能保留原来的接口调用方式,原先系统中重载的构造函数和方法在HarmonyOS中如何实现

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

可以使用可选参数实现重载效果

export class Test {
  private name: string = '';
  private age: number;

  constructor(name?: string, age: number = 18) {
    if (name) {
      this.name = name;
    }
    this.age = age
  }

  getAge(): number {
    return this.age
  }

  getName() {
    return this.name
  }

  hasSkill(skills?: Array<string>|string) {
    let skillsMsg = ''
    if (skills) {
      if(typeof skills== 'string'){
        skillsMsg=skillsMsg
      }else{
        skills.forEach(s => {
          skillsMsg += '、' + s;
        })
      }
    }
    return '用有的技能为:阅读' + skillsMsg
  }
}

调用示例:

let t1 = new Test()
let t2 = new Test('t2Name')
let t3 = new Test('t3Name', 100)

hilog.info(0x00000, TAG, 't1# name:%{public}s , age: %{public}d, 能力有:%{public}s', t1.getName(), t1.getAge(), t1.hasSkill());
hilog.info(0x00000, TAG, 't2# name:%{public}s , age: %{public}d, 能力有:%{public}s', t2.getName(), t2.getAge(), t2.hasSkill('算数'));
hilog.info(0x00000, TAG, 't3# name:%{public}s , age: %{public}d, 能力有:%{public}s', t3.getName(), t3.getAge(), t3.hasSkill(['唱歌', '跳舞']));

更多参见:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/1_4_u5b66_u4e60arkts_u8bed_u8a00-V5

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 重载方法问题
52浏览 • 1回复 待解决
Flutter 热重载方法有哪些?
384浏览 • 1回复 待解决
HarmonyOS TS类方法重载不能正常使用
47浏览 • 1回复 待解决
ArkTS类的方法是否支持重载
2491浏览 • 1回复 待解决
HarmonyOS 页面重载问题
49浏览 • 1回复 待解决
HarmonyOS ArkTS 关于重载的实现方式
81浏览 • 1回复 待解决
RichEditor添加、删除、重载图片
1116浏览 • 1回复 待解决
HarmonyOS ArkTS中运算符重载怎么写
26浏览 • 1回复 待解决
关于har和hsp的热重载使用
1093浏览 • 1回复 待解决
4.0release不支持热重载
2603浏览 • 1回复 待解决
重载该如何实现?有人知道吗?
854浏览 • 1回复 待解决
请教一下如何实现函数的重载
845浏览 • 1回复 待解决
HarmonyOS Hash方法
64浏览 • 1回复 待解决
HarmonyOS addAfter方法使用
42浏览 • 1回复 待解决
HarmonyOS await sleep方法
46浏览 • 1回复 待解决
HarmonyOS 关于openCustomDialog方法
45浏览 • 1回复 待解决