Backing Properties

如果你想做一些不符合“隐式backing field”的事情,你可以回过头来使用backing property。

private var _table: Map<String, Int>? = null
public val table: Map<String, Int>
    get() {
        if (_table == null) {
            _table = HashMap()
        }
        return _table ?: throw AssertionError("Set to null by another thread")
}

从各方面来说,这只是和Java访问私有属性一样,只是对默认getter和setter方法进行了优化从而没有引入多余的函数调用开销。

results matching ""

    No results matching ""