Moshi:为什么不需要注册生成的 JsonAdapters?

Moshi: Why no need to register generated JsonAdapters?

我正在使用 Moshi 及其 CodeGen 为 Retrofit 的 ConvertorFactory 自动生成 Kotlin JsonAdaptor。

我在我的数据 类 之上添加了 @JsonClass(generateAdapter = true),并且在创建项目之后所有适配器都将可用。然后我在这样的改造构建器中定义 MoshiConverterFactory.create(moshi)

val moshi = Moshi.Builder().build()

Retrofit.Builder()
     .baseUrl(/* baseUrl */)
     .client(/* okHttpClient */)
     .addConverterFactory(MoshiConverterFactory.create(moshi))
     .addCallAdapterFactory(/* ... */)
     .build()

我的问题是:Moshi 如何找到生成的适配器?

如您所见,不需要将它们注册为 Moshi 的自定义 JsonAdapter。他们工作得很好。 (我在调试模式下检查了它们,它们的功能将被调用)

如果您向我推荐它的源代码,我很高兴。

Moshi 使用命名约定来查找生成的适配器。它会尝试在预期位置找到那些 类,如果找到它们,就会使用它们。