非常抱歉我的问题很愚蠢。
我已经谷歌了这个问题,但答案对我没有用。
这是我的代码。
data class Article(val id: Long, val title: String, val ingress: String, val image: String,
val dateTime: String, val tags: List<String>, val content: List<Item>, val created: Long, val changed: Long) {
@delegate:Transient
val formatDateString: String by lazy {
val sdf = SimpleDateFormat("dd.MM.yyyy HH.mm")
val date: Date = sdf.parse(dateTime)
var time: String?
if (date.year == Date().year) {
time = SimpleDateFormat("dd MM,HH:mm", Locale.US).format(date)
} else {
time = SimpleDateFormat("dd MM yyyy,HH:mm", Locale.US).format(date)
}
time!!
}
}
当我尝试获取formatDateString
的值时,会出现以上异常。
代码如下访问formatDateString
override fun getCustomAdapter(): BaseQuickAdapter<CarListResponseBody.Article, BaseViewHolder> {
return object : BaseQuickAdapter<CarListResponseBody.Article, BaseViewHolder>( R.layout.app_item_cars_list,dataList) {
override fun convert(helper: BaseViewHolder, item: CarListResponseBody.Article) {
helper.setText(R.id.tv_ingress,item.ingress)
helper.setText(R.id.tv_date_time,item.formatDateString)
helper.setText(R.id.tv_title,item.title)
ImageLoadUtil.loadImgToView(context,item.image,helper.getView(R.id.img_car),null)
}
}
}
我认为这个异常是由Gson引起的,但我不知道原因。
formatDateString
有更好的解决方案? - CyrusformatDateString
,它会导致一些开销。此外,您可以使用包装器来包含formatDateString
。但是,使用起来可能不是非常方便。也许您可以考虑从Gson迁移到Moshi或kotlinx.serialization,但这需要相当大的工作量。 - Andrei Tanana