将GsonBuilder转换成Kotlin

有谁知道如何将此代码转换为kotlin

GsonBuilder builder = new GsonBuilder(); builder.setLenient(); builder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() { @Override public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (json.getAsJsonPrimitive().isNumber()) { return new Date(json.getAsJsonPrimitive().getAsLong() * 1000); } else { return null; } } }); return builder.create(); 

然后,我试了一下

 val builder = GsonBuilder() builder.setLenient() builder.registerTypeAdapter(Date::class.java,.........) return builder.create() 

…..我不知道如何转换代码

3 Solutions collect form web for “将GsonBuilder转换成Kotlin”

您询问的代码行可以转换为以下Kotlin代码:

 builder.registerTypeAdapter(Date::class.java, JsonDeserializer<Date> { json, typeOfT, context -> if (json.getAsJsonPrimitive().isNumber()) Date(json.asJsonPrimitive.asLong * 1000) else null }) 

首先,Kotlin支持将lambda转换为Java接口 ,但语法与Java不同。 那么,lambda中的返回与Java中的返回有不同的含义,应该用隐式返回或带标记的返回来替换。

谢谢,我已经知道了..是否是正确的做法,任何专家都可以发表评论

  @Provides @Singleton fun provideGson(): Gson? { val builder = GsonBuilder() builder.setLenient() builder.registerTypeAdapter(Date::class.java, JsonDeserializer<Date> { json, typeOfT, context -> if (json.asJsonPrimitive.isNumber) { Date(json.asJsonPrimitive.asLong * 1000) } else { null } }) return builder.create() } 
 val gson = GsonBuilder().apply { setLenient() registerTypeAdapter(Date::class.java, JsonDeserializer<Date> { json, typeOfT, context -> if(json.asJsonPrimitive.isNumber) { Date(json.asJsonPrimitive.asLong * 1000) } else { null } }) }.create() 
  • 在IntelliJ中如何改变Kotlin的'这个属性有一个后台'代码编辑器突出显示?
  • Java类名中的Kotlin中的静态常量
  • 将现有的groovy build.gradle文件转换为基于build.gradle.kts的kotlin
  • Kotlin是否支持表达式树?
  • 如何在Kotlin的Java 8 Stream上调用collect(Collectors.toList())?
  • Kotlin静态方法和变量
  • 作为函数引用Kotlin类属性setter
  • 为什么不sumBy(选择器)返回长?
  • 暂停和恢复洛蒂动画
  • 如何在基于Spring的强类型语言中正确地使用PATCH - example
  • Dagger2 - FragmentSubcomponentBuilder没有实现AndroidInjector.Factory
  • Kotlin language will be the best programming language for Android.