HarmonyOS 是否有类名反射,方法反射等,是否可以实现某个类中部分代码忽略,不参与编译 ?

当前有些场景,部分har包和代码是不一定能打包上架的,但当前开发场景需要引入,为了可以控制在打包时候是否需要引入和使用
HarmonyOS是否有 类名反射,方法反射等,是否可以实现某个类中部分代码忽略(OC可以实现),不参与编译。
资料只搜索到动态import是稍微相关的,但动态import实质使用上也是会检查har包是否存在而报错,想请问下是否可以做到动态import时不检查har包。
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...

阅读 785
1 个回答

在HarmonyOS和ArkTS(ArkUI的TypeScript版本)的上下文中,处理代码和库的动态加载、条件编译以及反射机制等方面有一些特定的考虑和实践。

  1. 动态加载和条件编译
    HarmonyOS 支持一定程度的条件编译,但通常是通过预处理器指令(如#ifdef、#ifndef、#endif等,尽管在TypeScript中不直接支持这些指令,但可以在C/C++中使用)或者是在构建脚本中设置条件来控制的。对于ArkTS,由于它主要是TypeScript,你通常需要在构建过程中处理条件编译,比如使用Webpack的插件或Babel的插件来根据环境变量或其他条件来决定是否包含某些代码或模块。
  2. 类名反射和方法反射
    在HarmonyOS的ArkTS(基于TypeScript)中,并没有直接支持Java或C#那样的反射API,因为TypeScript本身是一种静态类型语言,它在编译时就已经确定了所有的类型信息。然而,你可以通过一些间接的方式来实现类似反射的功能

如果是包内:当前就支持只通过变量动态import加载一部分代码https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
如果是跨包的:方舟这边是支持这个的。IDE暂不支持跨包加载单文件的配置特性。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题