先看一下Map的get方法定义:
def get(key: A): Option[B]
/** Creates a new iterator over all key/value pairs of this map
*
* @return the new iterator
*/
返回值是一个Option[B]
查阅资料发现:
1.映射.get(键)这样的调用返回一个Option对象,要么是Some(键对应的值),要么是None,Option对象有get函数,直接调用即可获取原来Map中key所对应的value
来自:https://blog.51cto.com/xpleaf/2105020
2.Scala Option[T]是由给定类型的零或一个元素的一种容器。Option[T]可以是 Some [T]或None对象,它代表缺少的值。 例如,如果已找到与给定键对应的值,则Scala的Map的get方法会生成Some(value),如果在Map中未定义给定的键,则将返回None。
Option类型在Scala程序中经常使用,可以将其与Java中可用的null值进行比较,表示null值。 例如,java.util.HashMap的get方法返回存储在HashMap中的值,如果没有找到值,则返回null。
来自:https://www.yiibai.com/scala/scala_options.html
经过自己的测试:
fra2dbMap += (s"tem_db_0"->"data1~data2")
Map(tem_db_0 -> data1~data2)
val tmp_dbValue = fra2dbMap.get(tem_db_0)
println(tmp_dbValue+"________________________"+tmp_dbValue.getClass)
结果
Some(data1~data2)________________________class scala.Some
解决办法:
再加一个get
参考:https://blog.csdn.net/xianpanjia4616/article/details/80947616
如:fra2dbMap.get(key).get
fra2dbMap.get(key).get
println(tmp_dbValue+"________________________"+tmp_dbValue.getClass)
结果:
data1~data2________________________class java.lang.String
或者直接:
fra2dbMap(key)