碰到这样一个问题,使用了一个swc包,一个类中的某属性是只读的,但我又需要给其赋初始值,研究了用继承的方法解决了这个问题。
所谓只读属性,也就是说变量只有get方法,没有set方法,如下类:
package
{
public class base
{
private var onestring:String = "frombase";
public function base()
{
}
public function get test():String
{
return onestring;
}
}
}
如果想直接对test赋值,写 (new base()).test = "aaa",编译会报错:Multiple markers at this line: -Line breakpoint: child.as [line: 13] -1059: 属性是只读的。
这里用一个子类继承base,重写其get方法,并增加set方法,外部调用就OK了,子类如下:
package
{
public class child extends base
{
private var test_:String;
public function child()
{
test_ = super.test; //非基本类型时,需要获取对象
this.test = "fromchild"; //可以赋值了
}
public override function get test():String
{
return test_;
}
public function set test(test:String):void
{
this.test_ = test;
}
}
}
上面的代码针对的是base类为库文件的情况,如果base有源码,那直接去base里加get就行了。这里用String作例子,实际一般应用于复杂类型的对象中。
分享到:
相关推荐
Flex 布局的伸缩属性包括 flex-grow、flex-shrink、flex-basis 等,用于控制元素的尺寸和排列顺序。 9. React props 和 state 区别: React 中的 props 和 state 是两个不同的概念。props 是父组件传递给子组件的...
2. **文本框(edit)**:用户输入数据,可设置只读或可编辑。 3. **滑块(slider)**:调整数值的直观方式,通常与变量链接。 4. **列表框(listbox)**:展示多项选择,支持单选或多选。 5. **菜单栏(menubar)**...
4. **常用布局结构**:包括浮动布局(使用`float`属性)、定位布局(`position`属性)、Flex布局(`display: flex`)和Grid布局(`display: grid`)。 5. **编写习惯**:保持代码整洁,合理使用注释,遵循语法规则...
例如,`disabled`属性用于禁用表单元素,`checked`属性用于设置复选框或单选按钮默认选中,`readonly`则使输入框变为只读。 2. **CSS伪类选择器**:CSS中的`:hover`、`:active`、`:focus`等伪类可以看作是布尔状态...
8.9 用@Value在控制器中赋值 314 8.9.1 问题 314 8.9.2 解决方案 314 8.9.3 工作原理 314 8.10 用控制器处理表单 316 8.10.1 问题 316 8.10.2 解决方案 316 8.10.3 工作原理 317 8.11 用向导表单...
8.9 用@Value在控制器中赋值 314 8.9.1 问题 314 8.9.2 解决方案 314 8.9.3 工作原理 314 8.10 用控制器处理表单 316 8.10.1 问题 316 8.10.2 解决方案 316 8.10.3 工作原理 317 8.11 用向导表单...