首页 > 解决方案 > 比较 Kotlin 类型和 java 类

问题描述

我正在尝试创建一个像这个问题一样的请求转换器,除了 JodaDateTime How to pass custom enum in @Query via Retrofit?

但是,我正在努力将传入的类型与 Joda Date Time 类进行比较。

class JodaDateConverterFactory : Converter.Factory() {

    override fun stringConverter(
        type: Type?, annotations: Array<out Annotation>?,
        retrofit: Retrofit?
    ): Converter<*, String>? {
        if (type is Class<*> && type==DateTime::class) {
          return Converter<Any?, String> { value -> (value as DateTime).toString("yyyy-MM-dd") }
        }
        return null
    }
}

type==DateTime::class 返回 false。

我可以看到该类型包含一个表示 Joda Date Time 的字符串,但我显然错误地比较了它们。

比较 kotlin 类型和 java 类的正确方法是什么?

标签: classtypeskotlinretrofit2

解决方案


要获取 Java 类型,请使用语法

DateTime::class.java

推荐阅读