我有两个字段:startDate
和endDate
,我需要确保结束日期等于或晚于开始日期。最好的方法是什么?
我想确保在endDate
之后反序列化startDate
所以我可以将逻辑放在其setter方法中,如:
@JsonSetter( "end" )
public void setEnd(String end)
{
this.endDate = parseZonedDateTime( end );
//invalid
if ( this.endDate.compareTo( this.startDate ) < 0 )
{
//Throw a validation exception
}
}
但只有在保证首先设置开始时才有效。
答案 0 :(得分:1)
我有两个字段:startDate和endDate,我需要确保结束日期等于或晚于开始日期。最好的方法是什么?
我不会尝试杰克逊这样做。杰克逊应该只专注于将json转换为对象。有效值应由杰克逊处理。也不是反序列化的顺序。
尝试在杰克逊转换后验证,手动或通过JSR-303等验证框架进行转换。