Java校验入参类型并拦截

入参:

{
    "name":"zhangsan",
    "friends":["json","lily"]
}

上面这种情况,我的DO定义的是:

public class Student{
    @NotBlank
    private String name;

    
    private List<String> friends;
} 

friends这个参数,我是允许为空的,但是如果传入,一定需要是数组类型,不能是字符串。
比如我把friends“json”字符串的时候,就会引起系统报错。
在php中,是可以验证friends的类型,在验证层做个转换,或者拦截的。
但是在java里,用javax.validation包,却没有相关的注解。
问了一圈小伙伴,都不会。
假如别人传了一个字符串,就引起系统报错,个人觉得小题大做了,有什么办法可以在验证层就拦截住呢?

阅读 2.6k
2 个回答

全局异常处理里,处理一下json解析的异常就行
印象里默认会有400的报错的

你接口用Student接收参数,friends是用的集合接收,如果传一个字符串,接收不到参数噻

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题