我是 Kotlin 的新手,我需要创建 2 个日期范围。一个显示在构造函数中创建的日期,另一个用默认日期修改结束日期,以防它为空或大于默认日期。为此,我曾想创建一个带有开始和结束日期的抽象类,然后创建 2 个数据类来实现这个抽象类,并将此业务规则放在其中一个中。这是我到目前为止的代码:
abstract class BaseLocalDateRange (
open val startDate: LocalDate?,
open val endDate: LocalDate?
)
data class LocalDateRange(
override val startDate: LocalDate?,
override val endDate: LocalDate?
): BaseLocalDateRange(
startDate,
endDate
)
data class LocalDateRangeEndDate(
override val startDate: LocalDate?,
override val endDate: LocalDate?
): BaseLocalDateRange(
startDate,
if (endDate== null || endDate > LocalDate.of(2099, 12, 31)) LocalDate.of(2099, 12, 31) else endDate
)
我的问题是:
谢谢!
不,您不需要覆盖 startDate 和 endDate
您可以在同伴处 DEFAULT_END_DATE
package org.example
import java.time.LocalDate
abstract class BaseLocalDateRange(
protected val startDate: LocalDate?,
protected val endDate: LocalDate?
){
companion object{
val DEFAULT_END_DATE: LocalDate = LocalDate.of(2099, 12, 31)
}
}
class LocalDateRange(startDate: LocalDate?, endDate: LocalDate?) : BaseLocalDateRange(startDate, endDate)
class LocalDateRangeEndDate(startDate: LocalDate?, endDate: LocalDate?) : BaseLocalDateRange(
startDate,
if (endDate!=null && endDate > DEFAULT_END_DATE) DEFAULT_END_DATE else endDate
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句