繁体   English   中英

在Java + kotlin项目中使用moshi的正确方法

[英]Right way to use moshi in Java+kotlin project

目前,我的android项目具有Java和Kotlin的部分代码库。

我们正在对Moshi进行翻新。

我一次又一次地遇到Moshi无法通过的java和kotlin之间的互操作性问题。

我相信我缺少一些东西。

我怀疑moshi和moshi-kotlin的版本中存在一些依赖问题,也许我使用的不是正确的。

以下是我目前具有的依赖关系。

implementation "com.squareup.moshi:moshi:1.8" implementation "com.squareup.moshi:moshi-kotlin:1.8" implementation "com.squareup.retrofit2:converter:moshi:2.6.0" implementation "com.squareup.retrofit2:retrofit:2.6.0"

我以以下方式创建翻新服务。

KotlinJsonAdapterFactory adapterFactory = new KotlinJsonAdapterFactory();
Moshi moshi = new Moshi.Builder().add(adapterFactory).build();
MoshiConverterFactory moshiKotlin = MoshiConverterFactory.create(moshi);

    return new Retrofit.Builder()
            .baseUrl(baseUrl)
            .addCallAdapterFactory(new GranularErrorsCallAdapterFactory())
            .addConverterFactory(MoshiConverterFactory.create())
            .addConverterFactory(moshiKotlin)
            .client(httpClient.build())
            .build()
            .create(RetroFitService.class);

我的怀疑是:

  1. 我需要同时添加Moshi和Moshi-kotlin吗?
  2. 我是否需要添加2个转换器工厂KotlinJsonAdapterFactoryMoshiConverterFactory.create()提供的默认值
  3. 我还有什么想念的吗?

您对kotlinandroid感到困惑,让我清除kotlin对android的支持,因此您无需同时添加这两个转换器工厂。 有关更多信息,请参阅使用Moshi和Kotlin的高级JSON解析技术

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM