是否支持通过动态import反射调用类的静态成员函数和实例成员函数

是否支持通过动态import反射调用类的静态成员函数和实例成员函数?

HarmonyOS
2024-09-19 11:28:59
1061浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

目前支持通过动态import反射调用类的静态成员函数、实例成员函数以及全局方法

参考代码:

// harlibrary的src/main/ets/utils/Calc.ets 
export class Calc { 
  public constructor() {} 
  public static staticAdd(a:number, b:number):number { 
    let c = a + b; 
    console.log("DynamicImport I'm harLibrary in staticAdd, %d + %d = %d", a, b, c); 
    return c; 
  } 
  public instanceAdd(a:number, b:number):number { 
    let c = a + b; 
    console.log("DynamicImport I'm harLibrary in instanseAdd, %d + %d = %d", a, b, c); 
    return c; 
  } 
} 
export function addHarLibrary(a:number, b:number): number { 
  let c = a + b; 
  console.log("DynamicImport I'm harLibrary in addHarLibrary, %d + %d = %d", a, b, c); 
  return c; 
} 
// harlibrary的index.ets 
export { Calc, addHarLibrary } from './src/main/ets/utils/Calc' 
// hap的index.ets 
let harLibrary = 'harlibrary'; 
import(harLibrary).then((ns: ESObject) => {  // 动态import变量是0118Beta版本新增特性,入参换成字符串'harlibrary'是现有特性。 
  ns.Calc.staticAdd(7, 8);  // 反射调用静态成员函数staticAdd() 
  let calc: ESObject = new ns.Calc();  // 实例化类Calc 
  calc.instanceAdd(8, 9);  // 调用实例成员函数instanceAdd() 
  ns.addHarLibrary(6, 7);  // 调用全局方法addHarLibrary() 
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
分享
微博
QQ
微信
回复
2024-09-19 16:18:22
相关问题
ArkTS调用C++成员函数
2319浏览 • 1回复 待解决
TaskPool是否可以访问静态成员
2430浏览 • 1回复 待解决
Native调用ArkTS侧函数
1842浏览 • 1回复 待解决
aki是否支持C++虚函数callback?
1648浏览 • 1回复 待解决
反射是否支持调用Reflect编译错误
2649浏览 • 1回复 待解决
HarmonyOS是否支持malloc_trim()函数
787浏览 • 1回复 待解决
HarmonyOS 支持查看函数列表
722浏览 • 1回复 待解决
HarmonyOS 动态import变量表达式做反射
670浏览 • 2回复 待解决