有谁知道如何将这段代码转换成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()
.....我不知道如何转换代码
最佳答案
您询问的代码行可以转换为以下 Kotlin 代码:
builder.registerTypeAdapter(Date::class.java, JsonDeserializer<Date> {
json, typeOfT, context ->
if (json.getAsJsonPrimitive().isNumber())
Date(json.asJsonPrimitive.asLong * 1000) else
null
})
首先,Kotlin 支持 SAM conversion of lambdas to Java interfaces , 但语法与 Java 不同。那么,lambda 中的返回值与 Java 中的含义不同,应替换为 implicit returns。或 labeled returns .
关于java - 将 GsonBuilder 转换为 Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44050597/