【发布时间】:2022-01-30 19:41:39
【问题描述】:
我有一个混合了 Java 和 Kotlin 的应用程序。 在 Kotlin 代码中,我使用 Moshi 在 Room 数据库表的转换器中将对象转换为 Json。
我有一种情况很好,但另一种情况却产生了错误:
Not enough information to infer type variable T
这是我的代码的样子:
val type: Type = Types.newParameterizedType(
MutableMap::class.java,
LayerTwoConn::class.java,
TWeFiState::class.java,
WfMeasureFileMgr::class.java,
Traffic::class.java,
ThroughputCalculator::class.java,
CellSubTechThroughput::class.java,
LongValuesAverageCalculator::class.java,
LayerTwoConn.SenselessTraffic::class.java
)
val json = Moshi.Builder().build().adapter(type).toJson(layerTwoConn)
我已经包含了对象中使用的所有类。 我错过了什么?
这个案例完美运行:
val type: Type = Types.newParameterizedType(
MutableList::class.java,
CnrScan::class.java,
)
val jsonAdapter: JsonAdapter<List<CnrScan>> = Moshi.Builder().build().adapter(type)
val json = jsonAdapter.toJson(list)
在这个对象中,所有内部使用的类都是标准的Java类,不是我自己的。
我错过了一些简单的事情吗?
我不知道这是否重要,但 LayerTwoConn 类的构造函数是私有的。
【问题讨论】: