HarmonyOS ArkTS支持重写hashCode值吗?

可以重写类的hashCode方法吗?Map以某个class类型作为key时,要让不同实例但属性值相同时,算出的hash值一致,在Map中存储在同一个位置。

示例代码:

export class TestMap {
  message: string;
  constructor(msg: string) {
    this.message = msg;
  }
}
function test() {
  let test1 = new TestMap("test");
  let test2 = new TestMap("test");
  let testMap = new Map<TestMap, TestMap>();
  testMap.set(test1, test1);
  testMap.set(test2, test2);
  console.log(`testMap size=${testMap.size}`);
}

期望输出为:testMap size=1可以重写TestMap的hashcode方法,实现这一效果吗?

HarmonyOS
2024-12-27 15:40:13
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

目前文档中暂未提到可支持重写该方法。请尝试如下方法:

export class TestMap {
  message: string;
  constructor(msg: string) {
    this.message = msg;
  }
}
export function Test(){
  let test1 = new TestMap("test");
  let test2 = new TestMap("test");
  let test1Json = JSON.stringify(test1) as string
  let test2Json = JSON.stringify(test2) as string
  let testMap = new Map<string, TestMap>();
  testMap.set(test1Json, test1);
  testMap.set(test2Json, test2);
  console.log(`testMap size=${testMap.size}`);
  console.log(`test1Json=${test1Json}`);
  console.log(`test2Json=${test2Json}`);
}
分享
微博
QQ
微信
回复
2024-12-27 17:26:02
相关问题
HarmonyOS RN支持重写框架层TurboModule
506浏览 • 1回复 待解决
ArkTS类的方法是否支持重
2832浏览 • 1回复 待解决
HarmonyOS 类可以被继承并重写
480浏览 • 1回复 待解决
java对象hashcode方法有替代api或者库
1313浏览 • 1回复 待解决
ArkTS语言支持语音识别?
1406浏览 • 1回复 待解决
HarmonyOS ArkTS支持正则匹配
396浏览 • 1回复 待解决
HarmonyOS ArkTS支持TS的抽象类
629浏览 • 1回复 待解决
ArkTS支持反射,有人知道反射用法?
2909浏览 • 1回复 待解决
HarmonyOS ArkTS支持子组件接受泛型T
435浏览 • 1回复 待解决
ArkTs支持java或者TS Reflect的反射用法
3324浏览 • 1回复 待解决
HarmonyOS 返回键强制监听及重写
1320浏览 • 1回复 待解决
有谁知道ArkTS支持隐式跳转
2327浏览 • 1回复 待解决
有谁知道ArkTS支持定时器
3308浏览 • 1回复 待解决
HarmonyOS AKI是否支持引用
212浏览 • 1回复 待解决
HarmonyOS 实体类如何重写toString方法
234浏览 • 1回复 待解决
ArkTS如何进行页面间传
1847浏览 • 1回复 待解决