可变长参数
object TestLog {def main(args: Array[String]): Unit = {test2("a")test3("a")}def test2(args:Any*) = {test(args)}def test3(args:Any*) = {test(args: _*)}def test(args:Any*) = {println(args.length)var i = 0while(i < args.length){print(s"the $i arg:")println(String.valueOf(args(i)))i += 1}}}
输出:
1
the 0 arg:WrappedArray(a)
1
the 0 arg:a
try-catch语法
def getIntConfig(config: util.Map[String,Object], key: String, defaultValue: Int): Int = {
try{
Integer.parseInt(String.valueOf(config.get(key)))
}
catch{
case e: Exception => {
defaultValue
}
}
}
scala没有自动装箱
def map = new util.HashMap[String,Object]()
map.put("a", 10) //编译失败
正解:
val map = new util.HashMap[String,Any]()
map.put("a", 10)
asInstanceOf使用
执行异常:
val map = new util.HashMap[String,Any]()
map.put("a", 10)
println(map.getOrDefault("a", "20").asInstanceOf[String])
泛型解析
def parseJson[T](node: FlowNode, cls: Class[T]): T = {
JSON.parseObject(JSON.toJSONString(node.getConfig, SerializerFeature.SortField), cls)
}
