scala - 将byte []转换为case类实例

时间:2016-12-14 06:46:34

标签: mongodb scala

我在mongoDB中将我的一个案例类实例'Alert'存储为二进制文件。 我必须阅读并输入现金以“提醒”。

我试过这个

object MongoMain extends App {
val uri = new MongoURI("url")
  val mongoColl = MongoConnection(uri)("testdb")("alert")
  val q = MongoDBObject("_id" -> ObjectId.massageToObjectId("5269c718ebb2e54b950a1cc1"))
  //  println(mongoColl.findOne(q))
  mongoColl.find(q).foreach { z ⇒
    z.get("message").getClass match {
      case data: Class[Binary] ⇒ println(data.getSimpleName)
      case _                   ⇒
    }
  }
}

这个打印字节[],即在我必须将其转换为Alert后将其作为byte []重新获取。我该怎么办,需要帮助:

1 个答案:

答案 0 :(得分:1)

尝试使用以下功能,希望它有用。

def deserializeAlert(data: Array[Byte]): Alert ={
    try {
      val in = new ObjectInputStream(new ByteArrayInputStream(data))
      val alert = in.readObject.asInstanceOf[Alert]
      in.close()
      alert
    }
    catch {
      case cnfe: ClassNotFoundException => {
        cnfe.printStackTrace()
        null
      }
      case ioe: IOException => {
        ioe.printStackTrace()
        null
      }
    }
  }