def test1(): Unit ={ val a = Array(0,1,2,3,4,5,6) val result = ((for(i <- a) yield { if(i > 4) Array("aaa","bbb") }).filter(p => p != BoxedUnit.UNIT)).map(f => f.asInstanceOf[Array[String]]).flatten // println(result(0).asInstanceOf[Array[String]].mkString(" ")) println(result.length) println(result.mkString(",")) }
这个测试让我醉了。。。。。
如果yield中有BoxedUnit.UNIT类型,那个yield的结果会变成object,里面的Array[String]类型也会变成不知道什么的奇怪东西,然后必须要通过类型强转才能回来。