首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Setter for LocalDateTime (Java8api)被调用两次

Setter for LocalDateTime (Java8api)被调用两次
EN

Stack Overflow用户
提问于 2016-02-11 15:45:45
回答 1查看 419关注 0票数 0

我为我正在开发的Java实现了一个类。该类具有一个“创建”LocalDateTime属性。但是,当我尝试设置该属性(一次)时,它的setter以某种方式连续调用两次--首先设置我想要的值,然后在不应该发生的第二个调用中将其设置为null。

我已经通过下面的方法进行了跟踪,所有的内容都很好地显示到了第三行。

代码语言:javascript
复制
public static ICEDocument mapDocumentFromSOLR(SolrDocument document) {

    ICEDocument result = new ICEDocument();
    Date uploaded = (Date) document.getFieldValue("CREATED");  
    LocalDateTime uploadDate = LocalDateUtils.convertUtcDateToLocalDateTime(uploaded); // custom class
    result.setCreated(uploadDate); // **faulty line**
}

这节课是为了清晰起见而缩短的:

代码语言:javascript
复制
import java.time.LocalDateTime;
import org.springframework.data.annotation.Transient;
[...]

@JsonIgnoreProperties(ignoreUnknown=true)
public class ICEDocument implements java.io.Serializable {
[...]

@Transient  
private LocalDateTime created;
[...]

@JsonDeserialize(using=LocalDateTimeJsonDeserializer.class)
public void setCreated(LocalDateTime created) {
    System.out.println("Setting creation date " + created);  // added for debugging
    this.created = created;
}
} 

步骤,我已经尝试解决这个

  1. 删除@瞬态。数据是通过Hibernate (ver5.1)填充的,我最初对属性进行了注释,因为字段本身不在相应的数据库表中。我认为这可能是问题所在(请参阅对象序列化与Java瞬态变量),但是删除它并没有改变任何事情。
  2. 更改第三行。我用静态LocalDateUtils方法中的基本内容来切换它。这并没有解决问题。 uploaded.toInstant().atZone(ZoneId.of("UTC")).toLocalDateTime();LocalDateTime uploadDate =
  3. 移除JSON反序列化器。我不认为JsonDeserializer是错误的,因为它是不应该的(而且也不是accd。在这一点上做任何事情,但为了完整起见,我将在这里添加它。可能我现在只是在抓吸管。 公共类LocalDateTimeJsonDeserializer扩展了JsonDeserializer {私有静态最终字符串DATE_TIME =“yyyy‘'HH:mm:ss";@重写公共LocalDateTime反序列化(JsonParser解析器,DeserializationContext上下文)抛出IOException,JsonProcessingException { DateTimeFormatter格式化程序= DateTimeFormatter.ofPattern(DATE_TIME);LocalDateTime deserializedDate = LocalDateTime.parse(parser.getText(),格式化程序);返回deserializedDate;}}

谢谢你阅读我的长篇文章。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 20:36:13

调试代码之后,我找到了一行代码,它将属性设置为null。所以我想,这实际上是第二次打电话给策划人,而且运气很差。

但是知道其他因素没有什么问题可能会有帮助,所以我就把这个留在这里,再次感谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35343787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档