编写接受字符串和字符串列表的Jackson批注

时间:2018-07-05 15:33:50

标签: java annotations jax-rs

我正在开发一个参数如下的JAX-RS程序。

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

它接受字符串和字符串数组。两者最终都转换为Array。
是否有任何这样的注释既可以接受字符串又可以接受字符串数组,并且不将其更改为任何其他类型,因为我希望我的程序接受“ name”参数作为字符串和字符串数组并保留其数据类型?

1 个答案:

答案 0 :(得分:1)

不幸的是,这是不可能的,因为没有StringString[]的共同祖先类型(Object除外,这将使其完全无用)。但是,如果您确实想执行此操作,则可以在pojo上创建一个getter方法,该方法将返回一个或另一个:

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