我想要为ResultSet
添加两个扩展函数,用于获取值作为LocalDate
。
fun ResultSet.getLocalDate(colName: String) = getDate(colName)?.toLocalDate()
fun ResultSet.getLocalDate(colIndex: Int) = getDate(colIndex)?.toLocalDate()
问题是
getDate()
返回一个Date!
,如果没有在toLocalDate()
之前使用?.
调用,显然我可能会出现空值错误。但是,这样一来,任何使用此扩展的人都必须将结果用作LocalDate?
而不是LocalDate!
。有没有办法为了保持一致性而保留平台类型?并让扩展函数的用户决定是否允许为空?或者我是将其视为不便而不是功能吗?