java - 编写接受字符串和字符串列表的 Jackson 注释

标签 java annotations jax-rs

我正在开发一个 JAX-RS 程序,其中参数之一如下。

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

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

最佳答案

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

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

关于java - 编写接受字符串和字符串列表的 Jackson 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195190/

相关文章:

java - 自定义 Jersey 参数抛出异常时的MultiException

java - Hibernate 事务的内存影响

java - 为什么将 Random 与硬编码种子一起使用总是会产生相同的结果?

java - 手动设置文件上传的文件名

java - 使用 Android 注释绑定(bind)到现有服务?

java - 为什么 Reflections.getFieldsAnnotatedWith() 不返回任何字段?

java - 正则表达式获取 1) 而不仅仅是数字

java - 为面板制作背景图像时遇到问题

eclipse 工具提示中的 Java 注释?

java - 在 JAX-RS 中发出 POST 请求时的最佳实践