【问题标题】:Right way to use moshi in Java+kotlin project在 Java+kotlin 项目中使用 moshi 的正确方法
【发布时间】:2019-08-29 11:48:31
【问题描述】:

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

我们正在使用 Moshi 进行改造。

在 java 和 kotlin 之间的互操作性方面,我不断遇到 Moshi 无法解决的奇怪问题。

我相信我错过了什么。

我怀疑 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. 还有什么我遗漏的吗?

【问题讨论】:

    标签: java android kotlin moshi


    【解决方案1】:

    您对kotlinandroid 感到困惑,让我澄清一下kotlin 支持android,因此您无需同时添加这两个转换器工厂。更多内容请阅读Advanced JSON parsing techniques using Moshi and Kotlin 文章。

    【讨论】:

      猜你喜欢
      • 2012-01-07
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 2021-03-10
      • 2011-02-08
      • 2013-10-03
      • 2021-07-30
      • 1970-01-01
      相关资源
      最近更新 更多