3
考慮到與最終私人領域_bar類:使用可選參數爲最終專用字段設置默認實例的最佳方法是什麼?
class Foo() {
final Bar _bar;
Foo({Bar bar}) : _bar = bar {
//error: list cannot be used as setter, it is final
_bar = new Bar();
}
}
試圖將其設置在參數列表導致此錯誤
//error: default values of an object must be constant
Foo({Bar bar: new Bar()}) : _bar = bar ..
我想保持可選參數,以便我能在單元測試中注入模擬。什麼是最好的方法呢?
不知道。將有趣的是允許它在初始化列表中,但不作爲默認值。 –
主要區別在於當你使用'null'設置可選參數時。使用默認值,該字段將等於'null',儘管該初始化程序列表將等於'new Bar()' –
這不是我的意思。我很好奇爲什麼在初始化器列表中允許非const值,但不是默認值。 –