@JvmOverloads并非炫技操作,而是Kotlin为Java生态圈献上的温柔妥协:"我懂你的习惯,所以主动来配合——不需要你改变,由我来迁就你。"
场景还原:Kotlin的优雅设计与Java的困惑时刻
当你用Kotlin写了个清爽的Person类,主构造函数带着默认参数,心里正美滋滋:
// Kotlin代码:简洁到飞起class Person( val name: String, // 必传参数 val age: Int = 0, // 默认值0,可省略 val email: String? = null // 默认值null,可省略)
结果隔壁Java同事眉头紧锁,对着IDE敲出灵魂拷问:
"这构造函数怎么必须填三个参数?new Person("张三", ???, ???) —— 我哪知道age默认是0?email是null还是空字符串啊!"

✨ @JvmOverloads:Kotlin给Java的贴心翻译官
这时候,只要给构造函数加个@JvmOverloads注解,世界瞬间和谐:
// 只加一行注解,解决跨语言沟通障碍!class Person @JvmOverloads constructor( //
