casbah mongodb more typesafe way to access object parameters
In casbah, there are two methods called `.getAs` and `.getAsOrElse` in MongoDBObject, which returns the relevant fields' values **in the type which given** as the type parameter. 

    val dbo:MongoDBObject = ...
    dbo.getAs[String](param)

This must be using type casting, because we can get a `Long` as a `String` by giving it as the type parameter, which might caused to type cast exception in runtime. Is there any other typesafe way to retrieve the original type in the result? 

This must be possible because the type information of the element should be there in the `getAs`'s output.
casbah mongodb more typesafe way to access object parameters
===

In casbah, there are two methods called `.getAs` and `.getAsOrElse` in MongoDBObject, which returns the relevant fields' values **in the type which given** as the type parameter. 

    val dbo:MongoDBObject = ...
    dbo.getAs[String](param)

This must be using type casting, because we can get a `Long` as a `String` by giving it as the type parameter, which might caused to type cast exception in runtime. Is there any other typesafe way to retrieve the original type in the result? 

This must be possible because the type information of the element should be there in the `getAs`'s output.