如何在ArkTS中实现Java运行时注解的能力?

如何在ArkTS中实现Java运行时注解的能力?


HarmonyOS
2024-05-23 22:13:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
nn_wzy

可以使用ts三方库reflect-metadata获得类似java运行时注解的功能。参考reflect-metadata

reflect-metadata提供的装饰器允许对类和属性和方法做标记,并提供了接口可以在运行时获取标记的信息。

参考代码:

ohpm i reflect-metadata 
import "reflect-metadata"; 
// 三方包的能力暴露在Reflect中 
@Reflect.metadata("TargetClass", 'classData') 
// 标记类,key是"TargetClass", 数据是classData 
class MyClass { 
  @Reflect.metadata("TargetMethod", 'methodData') 
  // 标记方法,key是"TargetMethod", 数据是methodData 
  myMethod(){} 
  @Reflect.metadata("Static", 'staticData') 
  static invoke(){} 
} 
  
// 运行时获取标记信息 
console.info(Reflect.getMetadata("TargetClass", MyClass));//classData 
console.info(Reflect.getMetadata("TargetMethod", new MyClass(), "myMethod"));//methodData 
console.info(Reflect.getMetadata("Static", MyClass, "invoke"));  // staticData

reflect-metadata三方库使用 中心仓

分享
微博
QQ
微信
回复
2024-05-24 22:05:21
相关问题
arkts运行时,当成 JS上下文用
579浏览 • 1回复 待解决
获取运行时编译构建参数
519浏览 • 1回复 待解决
运行时AOP插桩demo测试
478浏览 • 1回复 待解决
应用运行时进程资源使用规格
731浏览 • 1回复 待解决
如何动态查看代码运行时变量值?
285浏览 • 1回复 待解决
如何在ArkTS实现JSON和Map转换?
603浏览 • 1回复 待解决
如何在IDE运行c语言helloworld?
1863浏览 • 1回复 待解决
如何在ArkTS合并对象?
426浏览 • 1回复 待解决
如何在ArkTS合并对象
280浏览 • 1回复 待解决
延迟任务执行时机及运行线程
881浏览 • 1回复 待解决
如何在ArkTS代码执行HTML内JS函数
941浏览 • 1回复 待解决
HarmonyOS如何Java实现配音功能
3406浏览 • 1回复 待解决
ArkTS如何开启多个ArkTS 运行环境
613浏览 • 1回复 待解决