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

使用walt.id API遇类型错误:kotlin.List与java.util.ArrayList不兼容

问题排查与解决建议

1. Klaxon集合类型不匹配问题

这不是Kotlin本身的问题,核心是Klaxon序列化工具的类型校验逻辑,以及walt.id API内部返回的集合类型和你声明的类型不兼容:

  • Kotlin的List是接口,而API内部返回的是Java的ArrayList实现类。Klaxon在反序列化/对象转换时,可能严格要求类型完全匹配,导致抛出类型不匹配异常。
  • 解决方式:
    • 直接把EHIC模型中context的类型改为java.util.ArrayList<String>?,和API返回的类型对齐。
    • 或者在转换前手动将API返回的ArrayList转为Kotlin List,调用arrayList.toList()即可。

2. VerifiableAttestation缺少必填id参数问题

这属于walt.id API的问题:

  • 构造方法明确要求id为必填参数,但API内部创建该对象时没有传入,或者API文档未明确告知需要开发者手动传入id。
  • 解决方式:
    • 尝试手动生成一个UUID作为id参数传入(比如UUID.randomUUID().toString()),看看是否能绕过这个错误。
    • 如果API文档说明id会自动生成,那就是API内部实现的bug,需要向walt.id官方反馈。

总结

  • 集合类型问题:是Klaxon和API集合类型适配的问题,和Kotlin语言本身无关,调整类型或转换集合即可解决。
  • 缺id参数问题:属于walt.id API的实现或文档疏漏问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:55:19