【关键字】
ArkTS / string / 动态import
【问题描述】
ArkTS语法中,如何通过string名来new出具体的对象。类似与java里面class.forName和js中的eval实现?
考虑过这样来实现,但是eval方法被系统forbidden。
class PluginFactory {
createPlugin(funcNo: string): H5BasePlugin | null {
const className = `H5Plugin${funcNo}`;
try {
const pluginClass = eval(className) as { new(): H5BasePlugin };
return new pluginClass();
} catch (error) {
console.error(`Failed to create plugin for funcNo ${funcNo}. Error: ${error}`);
return null;
}
}}
【解决方案】
获取动态import使用说明,文档中有反射实现说明。