如何实现Java或者TS Reflect的反射功能

ArkTS能否实现类似java反射或者ts动态访问属性的机制?

HarmonyOS
2024-09-18 12:10:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

两种方式支持:

1.Reflect的如下函数处理:Reflect.get, Reflect.has, Reflect.ownKeys, Reflect.set

class MyClass { 
  value: number = 9; 
 
  fun() { 
    console.log('fun print') 
  } 
} 
 
function TestFun(par: number) { 
  console.log('TestFun print, par:' + par) 
} 
 
let RefClass = new MyClass(); 
Reflect.set(RefClass, "key", "keyvalue"); 
let str: string = Reflect.get(RefClass, "key"); 
console.log(str) 
 
Reflect.set(RefClass, "keyFun", () => { 
  console.log('lan print.') 
}); 
let lanFun: Function = Reflect.get(RefClass, "keyFun"); 
lanFun(); 
 
Reflect.set(RefClass, "keyFun2", TestFun); 
let globeFun: Function = Reflect.get(RefClass, "keyFun2"); 
globeFun(4); 
 
Reflect.set(RefClass, "keyFun3", RefClass.fun); 
let classFun: Function = Reflect.get(RefClass, "keyFun3"); 
classFun();

2.动态import,参考文档

import(path).then(ns => { 
  let cls: ESObject = new ns.TestDataCls(); 
  let indexName = 'name'; 
  cls[indexName] = "1"; 
})
分享
微博
QQ
微信
回复
2024-09-18 17:20:25
相关问题
ArkTs支持java或者TS Reflect反射用法吗
2129浏览 • 1回复 待解决
反射是否支持,调用Reflect编译错误
1481浏览 • 1回复 待解决
HarmonyOS中如何Java实现配音功能
4382浏览 • 1回复 待解决
如何实现类似插槽功能
1657浏览 • 1回复 待解决
ts开发如何实现异步编程
904浏览 • 1回复 待解决
ArkTS支持反射,有人知道反射用法吗?
1872浏览 • 1回复 待解决
如何实现类似.9 图功能
828浏览 • 1回复 待解决
鸿蒙如何实现分享功能
17262浏览 • 2回复 待解决
Grid如何实现拖拽功能
2252浏览 • 1回复 待解决
定时提醒功能如何实现?
4634浏览 • 1回复 待解决
Text如何实现删除线功能
379浏览 • 1回复 待解决
禁用窗口全屏显示功能如何实现
190浏览 • 1回复 待解决
HarmonyOS如何实现头像选择功能
71浏览 • 1回复 待解决
如何实现文本展开收起功能
510浏览 • 1回复 待解决
如何实现Fraction懒加载功能
7132浏览 • 1回复 待解决