Kotlin内联属性的用例是什么?

时间:2017-04-08 10:20:34

标签: kotlin

作为物业' getter setter 通常不具备参数和reified类型的功能,使用inline的好处/用例是什么?属性?

如果好处是降低与方法调用相关的成本,为什么不默认使所有属性getter / setter内联?

Kotlin Inline Properties

EG。

val foo: Foo
    inline get() = Foo()

var bar: Bar
    get() = ...
    inline set(v) { ... }

1 个答案:

答案 0 :(得分:7)

以下是内联属性discussion

  

具体型参数示例:

inline val <reified T : PsiElement> T.nextSiblingOfSameType: T?
    get() = PsiTreeUtil.getNextSiblingOfType(this, T::class.java)
     

另一个用例是从库的二进制接口隐藏一些属性。在Kotlin标准库中,与@InlineOnly注释一起,这可能使将来可以从类文件中排除这些属性的声明,减少方法计数,这将大大有利于Android的64K方法限制。