【问题标题】:scala case class with casbah. Accept objectid parameter as string or as a objectid带有 casbah 的 scala 案例类。接受 objectid 参数作为字符串或 objectid
【发布时间】:2013-08-08 21:10:15
【问题描述】:

我是 scala 的新手,还没有使用 java 或面向对象的编程语言进行任何编程。

我一直在用这个case类写数据库

case class User(id: new ObjectId, name: String)

让它接受 ObjectId 字符串或 ObjectId 的最佳方法是什么?理想情况下,我只想让案例类将字符串隐式转换为 ObjectId。

【问题讨论】:

    标签: scala implicit-conversion case-class casbah


    【解决方案1】:

    你应该选择一个伴生对象和一个案例类,例如:

    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")
    

    【讨论】:

      猜你喜欢
      • 2018-01-03
      • 1970-01-01
      • 2021-05-06
      • 2018-03-21
      • 2013-09-11
      • 2016-07-14
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多