我是 scala 的新手,还没有使用 java 或面向对象的编程语言进行任何编程。
我一直在使用这个案例类来写入数据库
case class User(id: new ObjectId, name: String)
让它接受 ObjectId 字符串或 ObjectId 的最佳方法是什么?理想情况下,我只想让案例类将字符串隐式转换为 ObjectId。
我是 scala 的新手,还没有使用 java 或面向对象的编程语言进行任何编程。
我一直在使用这个案例类来写入数据库
case class User(id: new ObjectId, name: String)
让它接受 ObjectId 字符串或 ObjectId 的最佳方法是什么?理想情况下,我只想让案例类将字符串隐式转换为 ObjectId。
您应该选择一个伴随对象和一个案例类,例如:
object User {
def apply(name: String): User = User(new ObjectId(), name)
def apply(id: String, name: String): User = User(new ObjectId(id), name)
}
case class User(id: ObjectId, name: String)
然后你可以处理这些情况:
val user = User("Ross")
val user1 = User("5204b74d9932e8319b8e9ec0", "Ross")
val user2 = User(new ObjectId(), "Whitehead")