跳到主要内容

类型转换

DeepSeek V3 中英对照 Type Conversion

一些注释的控制器方法参数代表了基于字符串的请求输入(例如,@RequestParam@RequestHeader@PathVariable@MatrixVariable@CookieValue),如果参数声明为非 String 类型,则可能需要进行类型转换。

对于这种情况,类型转换会根据配置的转换器自动应用。默认情况下,支持简单类型(如 intlongDate 等)。类型转换可以通过 WebDataBinder 进行自定义(参见 DataBinder),或者通过向 FormattingConversionService 注册 Formatters 来实现(参见 Spring Field Formatting)。

类型转换中的一个实际问题是如何处理空的字符串源值。如果由于类型转换的结果,这样的值被当作 null,则它会被视为缺失。这种情况可能发生在 LongUUID 以及其他目标类型中。如果你希望允许 null 被注入,可以在参数注解上使用 required 标志,或者将参数声明为 @Nullable