我用Jaskcon实现了简单的串行化
public class NullSerializer extends JsonSerializer<Object> {
public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeString("");
}
}编译此代码后,Java抛出错误
Error:java: java.lang.StackOverflowError我正在使用这个依赖项
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.1</version>
</dependency>有什么想法吗?
发布于 2017-08-03 10:53:55
对我来说效果很好:
public class Main {
static class NullSerializer extends JsonSerializer<Object> {
public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
jgen.writeString("");
}
}
public static void main(String[] args) throws Exception {
ObjectMapper m = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addSerializer(Object.class, new NullSerializer());
m.registerModule(module);
System.out.println(m.writeValueAsString(
Arrays.asList(true, 1, "String", new HashMap())
)); //prints "", while without registerModule - [true,1,"String",{}]
}
}我会去找别的地方。
首先,检查您的Xss For Maven。至少应该是-Xss256k,也许你需要更多,甚至更好,保留它的默认值为1MB,因为编译器使用堆栈的方式与Java语言不同,有时还会将结构放在堆栈上。
我希望您没有使用GWT,因为如果您的代码暴露给GWT编译器,这将是这种情况下的典型响应。
最不可能发生的事件是你在编译器中发现了一个真正的bug。
尝试在Maven中使用--debug选项,也许它会显示更多信息。
https://stackoverflow.com/questions/45470812
复制相似问题