You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin自定义ChatMessage类构造函数参数不匹配调用报错求助

问题原因
  • 次构造函数传参语法错误:Kotlin调用构造函数传递命名参数时需使用等号=而非冒号:,你当前代码中this(id: "", text: "", fromId: "", timestamp: -1)的写法不符合语法规范,编译器无法识别为合法的参数传递。
  • 主构造参数未声明为类属性:主构造函数中的timestamp参数没有添加val/var修饰符,仅作为构造入参存在,不会成为类的公开成员属性。如果你是使用Firebase、Gson等需要反射构造对象的序列化框架,框架无法匹配到对应字段的构造签名,就会抛出构造函数不匹配的报错。
修正方案
class ChatMessage(val id: String, val text: String, val fromId: String, val timestamp: Long) {
    constructor() : this(id = "", text = "", fromId = "", timestamp = -1L)
}

// 更简洁的写法:直接给主构造参数设置默认值,可省略次构造,同时满足序列化框架要求的无参构造能力
// class ChatMessage(
//     val id: String = "", 
//     val text: String = "", 
//     val fromId: String = "", 
//     val timestamp: Long = -1L
// )

内容的提问来源于stack exchange,提问作者PopeLouis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 15:00:00