目前无法直接通过类名去实例化对象,目前只支持以下方式构建对象:// ScanBarCodePage.ets export class DataTable { private name: string = ‘’; public getName(): string { return this.name; } public setName(value: string) { this.name = value; } constructor() { } static tagName(){ return ‘data-table’ } } //第一种用法:使用动态import导入模块,然后找到要反射的类new一个对象并转为ESObject类型,然后使用ESObject类型的索引: import(’./ScanBarCodePage’).then(ns => { let cls: ESObject = new ns.DataTable(); let p = ‘name’; cls[p] = ‘lisi’; }) //第二种用法: async function test1():Promise<DataTable> { //获取ScanBarCodePage.ets文件 let ns = await import(’./ScanBarCodePage’); // 获取DataTable类 let cls: ESObject = new ns.DataTable(); let p = ‘name’; cls[p] = ‘lisi’; //cls.setName(‘wangWu’) 调用set方法也可以 console.info(‘DataTable.name ==>’+ cls.getName()) //获取类中静态方法 const t = ns.DataTable; t.tagName(); return cls; }
目前无法直接通过类名去实例化对象,目前只支持以下方式构建对象: