gpt4 book ai didi

date - 日期为null时,Gson setDateFormat引发异常

转载 作者:行者123 更新时间:2023-12-04 15:21:40 25 4
gpt4 key购买 nike

我将Gson实例构建为:

val DATE_FORMAT_MASK = "yyyy-MM-dd'T'HH:mm:ssZ"

val gson = GsonBuilder()
.setDateFormat(DATE_FORMAT_MASK)
.create()


在我执行空日期的序列化之前,此方法可以正常工作

gson.toJson(null, Date::class.java)


然后我得到以下异常:

java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1770)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:943)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936)
at java.text.DateFormat.format(DateFormat.java:345)
at com.google.gson.DefaultDateTypeAdapter.write(DefaultDateTypeAdapter.java:88)
at com.google.gson.DefaultDateTypeAdapter.write(DefaultDateTypeAdapter.java:40)
at com.google.gson.Gson.toJson(Gson.java:669)
at com.google.gson.Gson.toJson(Gson.java:648)
at com.google.gson.Gson.toJson(Gson.java:603)


我如何处理这种情况?

可能是Gson库中的错误?

最佳答案

如果还有其他人遇到此问题,则该问题存在于Gson 2.8.1版本中。回到2.8.0或前进到2.8.2都可以解决此问题。如果您坚持使用2.8.1,此错误报告中将详细说明another workaroundhttps://github.com/google/gson/issues/1096

private Gson getGson() {
// Trick to get the DefaultDateTypeAdatpter instance
// Create a first instance a Gson
Gson gson = new GsonBuilder()
.setDateFormat(DATE_FORMAT_COMPLETE)
.create();

// Get the date adapter
TypeAdapter<Date> dateTypeAdapter = gson.getAdapter(Date.class);

// Ensure the DateTypeAdapter is null safe
TypeAdapter<Date> safeDateTypeAdapter = dateTypeAdapter.nullSafe();

// Build the definitive safe Gson instance
return new GsonBuilder()
.registerTypeAdapter(Date.class, safeDateTypeAdapter)
.create();
}

关于date - 日期为null时,Gson setDateFormat引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46888187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com