MST

星途 面试题库

面试题:Kotlin中类型安全的构建器模式基础实现

请用Kotlin实现一个简单的类型安全的构建器模式,用于创建一个包含姓名、年龄和地址的Person类实例。要求构建器方法链式调用,且能保证类型安全。
35.7万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
class Person(
    val name: String,
    val age: Int,
    val address: String
)

class PersonBuilder {
    private var name: String? = null
    private var age: Int? = null
    private var address: String? = null

    fun name(name: String): PersonBuilder {
        this.name = name
        return this
    }

    fun age(age: Int): PersonBuilder {
        this.age = age
        return this
    }

    fun address(address: String): PersonBuilder {
        this.address = address
        return this
    }

    fun build(): Person {
        checkNotNull(name) { "Name is required" }
        checkNotNull(age) { "Age is required" }
        checkNotNull(address) { "Address is required" }
        return Person(name, age, address)
    }
}

使用示例:

fun main() {
    val person = PersonBuilder()
      .name("John")
      .age(30)
      .address("123 Main St")
      .build()
    println(person)
}