我正在用抽象方法编写一个抽象json解析器
T parse(JsonNode node);
我的目标是验证参数(节点)。它不应为null,如果确实为null,则应返回NullNode.class的实例。
在网络上找不到很多东西。
public abstract class AbstractJsonParser<T> extends AbstractHttpMessageConverter<T> {
....
abstract T parse(JsonNode node);
@Override
protected T readInternal(Class<? extends T> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
JsonNode parentNode = objectMapper.readTree(inputMessage.getBody());
return parse(parentNode);
}
}
java8中有什么方法可以做到这一点吗?我将有许多具体的实现,并且我不想每次都检查null值。 预先感谢。
答案 0 :(得分:0)
您可以将parse
设为具体方法并实现该部分
它不应为null,实际上应该为
NullNode.class
的实例。
有。任何实现都可以通过super.parse(node)
来引用它。
如果必须强制子类实现其解析部分,则the template method pattern可能会派上用场。您可以在AbstractJsonParser#parse
中定义通用部分,并将抽象步骤委托给子类。