我在 apex 中有一个抽象类,其中有几个我想在子类中重写的属性。根据文档,属性支持覆盖和虚拟访问修饰符。但是,当我尝试在父类或子类中使用它们中的任何一个时,我收到一条错误消息,指出变量不能标记为虚拟/覆盖。以下是导致此错误的代码的传真:
public abstract class Row{
public virtual double value{
get{return value==null ? 0 : value;}
set;
}
}
public class SummaryRow extends Row{
private list<Row> childRows;
public override double value{
get{
totalValue = 0;
for(Row childRow:childRows){
totalvalue += childRow.value;
}
return totalValue;
}
}
}
是否不支持此功能,或者我缺少什么功能?
提前致谢。
不幸的是,据我所知,这是文档中的一个错误。我只能申请override
and virtual
方法的修饰符。当然,您可以通过手动编写属性 getter/setter 方法来获得所需的效果:
public abstract class TestRow {
public Double value;
public virtual Double getValue() {
return value==null ? 0 : value;
}
public void setValue(Double value) {
this.value = value;
}
}
public class SummaryTestRow extends TestRow {
private list<TestRow> childRows;
public override Double getValue() {
Double totalValue = 0;
for(TestRow childRow : childRows){
totalValue += childRow.value;
}
return totalValue;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)