Написание аннотации Джексона, которая принимает как строку, так и список строк - PullRequest
0 голосов
/ 05 июля 2018

Я разрабатываю программу JAX-RS, в которой один из параметров имеет следующий вид.

@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
private String[] name;

Принимает как строку, так и массив строк. Оба они, наконец, конвертируются в Array.
Существует ли такая аннотация, которая может принимать как строку, так и массив строк, и не заменять ее другими типами, поскольку я хочу, чтобы моя программа принимала параметр «name» как строку и массив строк и сохраняла их тип данных?

1 Ответ

0 голосов
/ 06 июля 2018

К сожалению, это было бы невозможно, потому что нет общего типа предка String и String[] (кроме Object, что сделало бы его полностью бесполезным). Однако, если вы действительно хотите это сделать, вы можете создать метод получения в pojo, который бы возвращал одно или другое:

public Object getStringOrArrayName() {
    return (name.length == 1) ? name[0] : name;
}
...