Type Conversion

如果将参数声明为 String 以外的内容,则表示基于字符串的请求输入的一些带注解的控制器方法参数(例如 @RequestParam@RequestHeader@PathVariable@MatrixVariable@CookieValue)可能需要类型转换。

对于此类情况,将根据配置的转换器自动应用类型转换。默认情况下,支持简单类型(例如 intlongDate 等等)。可以通过 WebDataBinder 自定义类型转换(请参阅 DataBinder)或通过 FormattingConversionService 注册 Formatters(请参阅 Spring Field Formatting)。

类型转换中的一个实际问题是对空字符串源值的处理。此类值会在结果类型转换后变为 null 的情况下被视为缺失值。LongUUID 和其他目标类型的情况可能如此。如果你想允许注入 null,则可以使用参数注释上的 required 标志,或将参数声明为 @Nullable