Я не жалуюсь, но хотел бы понять, почему это работает.
Это мой Java класс:
public static class ExampleClass {
private Path target;
public Path getTarget() {
return target;
}
public void setTarget(Path target) {
this.target = target;
}
}
А это JSON:
{
"target": "some/path"
}
Теперь простой тест показывает, что он работает:
ObjectMapper mapper = new ObjectMapper();
ExampleClass exampleClass = mapper.readValue(json, ExampleClass.class);
assertEquals(Path.of("some/path"), exampleClass.getTarget());
Но как? В Path
нет конструктора (publi c), который принимает String
. Откуда Джексон знает, что ему нужно позвонить Path.of()
?