java 在实例化时设置对象字段等于另一个字段
java set object field equal another field upon instantation
我正在将 json 列表映射到 java 对象列表。我要映射到的 class 有一个额外的时间字段(当地时间)。
在传入的json中,时间戳字段显示为例如1510549200000(UTC时间戳)。此示例对应日期:2017 年 11 月 13 日,星期一 12:00:00 AM GMT-05:00 in local time
映射到 class 后,我需要根据传入的 UTC 值分配本地时间。
映射完成如下:
List<myClass> items = objectMapper.readValue(
jsn_a.toString(), new TypeReference<List<myClass>>() {});
在我的 Class 构造函数中是:
public myClass() {
this.localTime= myUTCTime;
}
但是当我查看生成的对象列表时,我发现 localTime 仍设置为 null。
我明白为什么会这样(先调用构造函数);但是如何在对象创建期间将 utc 时间戳分配给 localTime 字段。
没关系,我一发布问题就想通了。我在 utc 字段中分配了本地时间值 setter.
通常,Java-JSON 映射库调用无参数构造函数将 JSON 对象反序列化为 Java 对象。
根据您使用的库,您可以使用一种方法从 arg 构造函数设置字段。
或者更简单地在默认反序列化后调用字段上的 setter :
Foo foo = ... // unserialize from json
foo.setLocalTime(myUTCTime);
我正在将 json 列表映射到 java 对象列表。我要映射到的 class 有一个额外的时间字段(当地时间)。
在传入的json中,时间戳字段显示为例如1510549200000(UTC时间戳)。此示例对应日期:2017 年 11 月 13 日,星期一 12:00:00 AM GMT-05:00 in local time
映射到 class 后,我需要根据传入的 UTC 值分配本地时间。
映射完成如下:
List<myClass> items = objectMapper.readValue(
jsn_a.toString(), new TypeReference<List<myClass>>() {});
在我的 Class 构造函数中是:
public myClass() {
this.localTime= myUTCTime;
}
但是当我查看生成的对象列表时,我发现 localTime 仍设置为 null。
我明白为什么会这样(先调用构造函数);但是如何在对象创建期间将 utc 时间戳分配给 localTime 字段。
没关系,我一发布问题就想通了。我在 utc 字段中分配了本地时间值 setter.
通常,Java-JSON 映射库调用无参数构造函数将 JSON 对象反序列化为 Java 对象。
根据您使用的库,您可以使用一种方法从 arg 构造函数设置字段。
或者更简单地在默认反序列化后调用字段上的 setter :
Foo foo = ... // unserialize from json
foo.setLocalTime(myUTCTime);