Плохо ли, если я использую String ObjectMapper.writeValueAsString(Object value)
, когда мой объект значения может быть либо String
, либо объектом MyClass
(содержащим JsonNode
). У меня есть метод, который использует дженерики и возвращает либо String
, либо MyClass
объект, который я хочу сериализовать в строку и хочу избежать проверки типа.
По сути, хотите знать, что вызов String ObjectMapper.writeValueAsString(Object)
путем передачи аргумента String
неверен?
Я использую jackson-databind-2.9.9.jar
и ссылаюсь на com.fasterxml.jackson.databind.JsonNode
и com.fasterxml.jackson.databind.ObjectMapper
.
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyClass {
private String id;
private JsonNode data;
@JsonProperty("data")
public JsonNode getData() {
return data;
}
public void setData(JsonNode data) {
this.data = data;
}
@JsonProperty("id")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
В настоящее время я делаю это и хочу этого избежать:
T value = someMethod();
if (value instanceof String) {
valueString = (String) value;
} else {
valueString = mapper.writeValueAsString(value);
}
, где T может быть String
или MyClass
.