ruleForComparable 的 BUG #14

Closed
opened 2025-07-25 17:08:42 +08:00 by zhouxy108 · 0 comments
Owner

当被校验的 value 的类型,其实现的 Comparable 的泛型是其父类型时,无法指定具体类型的类型参数

LocalDateTime 为例,LocalDateTime 实现了 ChronoLocalDateTime,间接实现了 Comparable<ChronoLocalDateTime>,此时无法使用 this.<LocalDateTime>ruleForComparable(xxx) 的方式定义 LocalDateTime 的校验规则。

  • MapValidator 中,不指定类型参数的情况下,使用 must 定义规则时,lambda 表达式的入参被识别为 Comparable<T>,而非具体 LocalDateTime 类型
  • BaseValidator 中,不指定类型参数的情况下,使用 must 定义规则时,lambda 表达式的入参被识别为 ChronoLocalDateTime<?>,而非具体 LocalDateTime 类型
当被校验的 `value` 的类型,其实现的 `Comparable` 的泛型是其父类型时,无法指定具体类型的类型参数 以 `LocalDateTime` 为例,`LocalDateTime` 实现了 `ChronoLocalDateTime`,间接实现了 `Comparable<ChronoLocalDateTime>`,此时无法使用 `this.<LocalDateTime>ruleForComparable(xxx)` 的方式定义 `LocalDateTime` 的校验规则。 - 在 `MapValidator` 中,不指定类型参数的情况下,使用 `must` 定义规则时,lambda 表达式的入参被识别为 `Comparable<T>`,而非具体 `LocalDateTime` 类型 - 在 `BaseValidator` 中,不指定类型参数的情况下,使用 `must` 定义规则时,lambda 表达式的入参被识别为 `ChronoLocalDateTime<?>`,而非具体 `LocalDateTime` 类型
zhouxy108 added the
type:bug
label 2025-07-25 17:08:42 +08:00
zhouxy108 added the
status:completed
label 2025-07-25 17:39:19 +08:00
Sign in to join this conversation.
No description provided.