Zer*_*One 8 java android gson 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();
Run Code Online (Sandbox Code Playgroud)
然后,我试过了
val builder = GsonBuilder()
builder.setLenient()
builder.registerTypeAdapter(Date::class.java,.........)
return builder.create()
Run Code Online (Sandbox Code Playgroud)
.....我无法弄清楚如何转换代码
您询问的代码行可以转换为以下Kotlin代码:
builder.registerTypeAdapter(Date::class.java, JsonDeserializer<Date> {
json, typeOfT, context ->
if (json.getAsJsonPrimitive().isNumber())
Date(json.asJsonPrimitive.asLong * 1000) else
null
})
Run Code Online (Sandbox Code Playgroud)
首先,Kotlin支持将lambdas SAM转换为Java接口,但语法与Java不同.然后,lambda中的返回与Java中的返回具有不同的含义,并且应该用隐式返回或带标记的返回替换.
| 归档时间: |
|
| 查看次数: |
1949 次 |
| 最近记录: |