【关键字】
快捷键 / set / get / Command+N
【问题描述】
开发中给实体model的私有属性,通过DevEco Studio的快捷键Command+N自动生成model的set/get方法,会生成返回类型为set或者get的方法,不能正常调用。
下图是用软件自动生成的set/get方法,不能正常调用去赋值。
下图是手敲的。
希望不用一个个去手敲。
【解决方案】
在ArkTS中,getter和setter的写法就是如下的:
private _testAttr: string = '';
public set testAttr(value: string) {
this._testAttr = value;
}
public get testAttr(): string {
return this._testAttr;
}
在调用的时候,如果想获取testAttr的值,就是BookBangInfo.testAttr;如果想给testAttr赋值,就是BookBangInfo.testAttr = "testAttr"。
但这里需要注意的是,如果变量可能是undefined类型,则在声明变量的时候需要写明undefined,这样自动生成getter和setter才能加上undefined类型。
例子如下:
private word?: string | undefined;
private wordNew?: string| undefined;
private rank?: string| undefined;
private linkUrl?: string| undefined;
private _testAttr: string = '';