美文网首页
[Kotlin] 连续引用的实现

[Kotlin] 连续引用的实现

作者: Cocoonshu | 来源:发表于2020-12-13 17:06 被阅读0次

    在Java中的Builder模式中经常会使用连续引用来方便SDK调用,如下:

    // Java
    new Builder()
        .setTitle("title")
        .setTitleColor(Color.RED)
        .setSubtitle("subtitle")
        .setSubtitleColor(Color.GRAY)
        .build();
    

    但这个模式在Kotlin下怎么实现呢?

    定义

    // Kotlin
    class MapBuilder {
        fun setTitle(title: String): Builder = this.apply {
            // save title
        }
    
        fun setSubtitle(title: String): Builder = this.apply {
            // save subtitle
        }
    
        fun build(): Map = mapOf(
            "title" to xxx,
            "subtitle" to xxx
        )
    }
    

    使用

    // Kotlin
    MapBuilder()
        .setTitle("This is title")
        .setSubtitle("this is subtitle")
        .build()
    

    相关文章

      网友评论

          本文标题:[Kotlin] 连续引用的实现

          本文链接:https://www.haomeiwen.com/subject/szlpgktx.html