在Kotlin没有吸气剂的财产

ars*_*v31 5 kotlin

如何使用自定义setter声明属性,但在Kotlin中没有getter?例如,在Anko中,他们这样做:

var myProperty: Type
    @Deprecated(AnkoInternals.NO_GETTER, level = DeprecationLevel.ERROR) 
    get() = AnkoInternals.noGetter()
    set(value) { field = value; /* setter logic */ }
Run Code Online (Sandbox Code Playgroud)

但它对我来说看起来有些笨拙.这是一种正确的方法吗?如果是,那么当项目没有Anko依赖时呢?

PS让我明确一点 - 我想完全没有吸气剂,而不是私人吸气剂

vod*_*dan 6

弃用setter仍然是获得效果的唯一方法.

您不需要Anko依赖项,只需使用@Deprecated适当的注释即可level.