有關(guān)kotlin的幕后字段,在 https://zhuanlan.zhihu.com/p/27493630 這里講得很好,我總結(jié)了一下,如果讓一個(gè)kotlin的類屬性有幕后字段,需要滿足以下條件
- 不管是var或者val字段,只要有默認(rèn)的setter/getter方法,就有幕后字段
- 如果沒(méi)有默認(rèn)的setter/getter方法,只要在setter/getter方法里使用了field,也會(huì)生成幕后字段
- 接口不能有幕后字段
- 類的幕后字段必須初始化,或者顯式聲明需要延遲初始化,如果該字段沒(méi)有默認(rèn)的setter/getter方法說(shuō)明它并不是幕后字段