Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
迭代Scala中的数组[java.lang.Object]_Java_Scala - Fatal编程技术网

迭代Scala中的数组[java.lang.Object]

迭代Scala中的数组[java.lang.Object],java,scala,Java,Scala,我有Scala类型: Array[java.lang.Object] 尝试对其进行迭代: for (el <- arrayTest) { println("el: " + el) } 如何将每个元素分离为: el: "null" el: "string" “e”是数组中每个位置的对象 如果你运行这个 val arrayTest: Array[java.lang.Object] = Array(null, "string") for (el <- arrayTest)

我有Scala类型:

Array[java.lang.Object]
尝试对其进行迭代:

for (el <- arrayTest) {
    println("el: " + el)
}
如何将每个元素分离为:

el: "null"
el: "string"
“e”是数组中每个位置的对象

如果你运行这个

val arrayTest: Array[java.lang.Object] = Array(null, "string")

for (el <- arrayTest) {
  println("el: " + el)
}

因此,它肯定会根据需要在
数组中进行迭代。

根据我的理解,下面是我在scala REPL中尝试的内容

scala> val arr:Array[java.lang.Object] = Array("null","string")
arr: Array[Object] = Array(null, string)

scala> for (el <- arr)(println("el: "+el))
el: null
el: string

scala>
scala>val-arr:Array[java.lang.Object]=Array(“null”、“string”)
arr:Array[Object]=数组(null,字符串)
scala>用于(el)

您的代码实际上为输入生成了预期的结果(以
el:
开头的两行):
Array[java.lang.Object](null,“string”)
@Tzach-我预期有两行独立的行(例如,与Python中的类似)。你知道为什么只打印一行吗?如何“测试”每个元素是否为“null”?只是为了比较“if el==null”?正如我所写的,当我运行它时,你的代码确实会产生两行独立的行。请将你的确切输入(此数组是如何创建的)添加到问题中,因为问题可能存在。至于null比较,是的,
if(el==null)
有效,但您也应该使用Scala的
选项来检查,例如
选项(el).foreach(println(“el:”+)
。似乎您的数组包含一个由这两个元素组成的元素。请说明如何填充数组。在Scala中:
arrayTest.map(e=>println(“el:”+e))
在我看来,最好只为一件事使用
map
而不是
for
。你能给我你的
arrayTest
吗?看起来这
e
是你的对象,所以你需要使用一些东西从中获取信息。你有
Array[java.lang.object]
但是你需要知道这个对象是什么。所以你可以使用
for
map
foreach
来迭代数组。这不是问题,但结果是对象,所以如果你有类似
Person的东西(firstName:String,lastName:String)
和一个数组,因此对特定字段的访问权限是
person.firstName
如果您有
java.lang.Object
,您可以使用
isInstanceOf
将其更改为您应该拥有的对象。
val arrayTest: Array[java.lang.Object] = Array(null, "string")

for (el <- arrayTest) {
  println("el: " + el)
}
el: null
el: string
scala> val arr:Array[java.lang.Object] = Array("null","string")
arr: Array[Object] = Array(null, string)

scala> for (el <- arr)(println("el: "+el))
el: null
el: string

scala>