想,我有我的域對象命名「辦公室」:如何避免使用null?
case class Office(
id: Long,
name: String,
phone: String,
address: String
) {
def this(name: String, phone: String, address: String) = this(
null.asInstanceOf[Long], name, phone, address
)
}
當我創建新辦公室:
new Office("officeName","00000000000", "officeAddress")
我不指定ID場becouse我不不知道。當我節省辦公(由ANORM)我現在ID並做到這一點:
office.id = officeId
所以。我知道使用null是非斯卡拉方式。如何避免在我的情況下使用null?
更新#1
使用選項。
想,這樣的事情:
case class Office(
id: Option[Long],
name: String,
phone: String,
address: String
) {
def this(name: String, phone: String, address: String) = this(
None, name, phone, address
)
}
而且,在保存後:
office.id = Option(officeId)
但是如果我需要找到辦公ID的東西嗎?
SomeService.findSomethingByOfficeId(office.id.get)
是否清楚? office.id.get看起來不那麼好)
更新#2
大家的感謝!我從你的答案中得到了新的想法!衷心感謝!
是findSomethingByOfficeId(null)一件好事嗎?在沒有officeId的情況下,如果你想通過辦公室ID找到某些東西,你會做什麼?期權會迫使你決定如何處理這種情況(這是件好事)。 – stew