将此关键字与ObjectMapper一起使用
我已经在POJO中实现了一种方法,我想用它将该对象转换为JSON字符串。
public class Plan implements Stringer {
private long id;
private String planId;
private String planName;
@Override
public String getAsString() {
try {
return EntityMapper.getInstance().writeValueAsString(this);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
我的EntityMapper是:
@Data
public class EntityMapper {
private static ObjectMapper mapper;
private EntityMapper() {
}
public static ObjectMapper getInstance() {
if (mapper == null) {
mapper = new ObjectMapper();
}
return mapper;
}
}
当我称此为plan.getAsstring()
时,我会得到stackoverflowerror
但是,如果我将其更改
public String getAsString(Object obj) {
try {
return EntityMapper.getInstance().writeValueAsString(obj);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
为plan.getAsstring(plan)
,则可以使用它。 有人可以帮助我理解为什么会发生这种情况吗? 我正在使用Java 11和最新版本的ObjectMapper
I have implemented a method in a POJO which I want to use to convert that object into a Json string.
public class Plan implements Stringer {
private long id;
private String planId;
private String planName;
@Override
public String getAsString() {
try {
return EntityMapper.getInstance().writeValueAsString(this);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
My EntityMapper is:
@Data
public class EntityMapper {
private static ObjectMapper mapper;
private EntityMapper() {
}
public static ObjectMapper getInstance() {
if (mapper == null) {
mapper = new ObjectMapper();
}
return mapper;
}
}
When I call this like plan.getAsString()
I get a StackOverflowError
However, if I change this to
public String getAsString(Object obj) {
try {
return EntityMapper.getInstance().writeValueAsString(obj);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
and call it like plan.getAsString(plan)
it works.
Can someone help me understand why this is happening?
I am using Java 11 and the latest version of the ObjectMapper
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论