Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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
Java 使用forEach在varArgs上迭代_Java_Java 8 - Fatal编程技术网

Java 使用forEach在varArgs上迭代

Java 使用forEach在varArgs上迭代,java,java-8,Java,Java 8,我可以在varArgs上使用forEach()或stream() protected void getSomeIds (List<String>... varArgs) { for(List lst:varArgs) { System.out.println("This works"); } //Following does not compile varArgs.forEach(); // nor varArgs.s

我可以在varArgs上使用
forEach()
stream()

   protected void getSomeIds (List<String>... varArgs) {
     for(List lst:varArgs) {
     System.out.println("This works");
    }
   //Following does not compile 
    varArgs.forEach();
   // nor 
    varArgs.stream();
   }
受保护的void getsomeid(列表…varArgs){
对于(列表lst:varArgs){
System.out.println(“本工程”);
}
//以下内容不可编译
varArgs.forEach();
//也不是
varArgs.stream();
}

Varargs的行为类似于数组,因此您可以使用
流获得Varargs的

Stream<List<String>> stream = Stream.of (varArgs);

你把语法弄糊涂了。试试这个:

for(List lst:varArgs) {
    lst.forEach(str -> System.out.println(str));
}

由于,
varArgs
实际上已经是一个数组,因此应首选
Arrays.stream(…)
以避免意外创建包含一个数组的单个元素流<如果您实际有多个参数,例如,
Stream.of(arg1,arg2,arg3)
是首选方法。
好的,这对我来说很有意义。谢谢Holger和eran谢谢@eran。顺便说一句,对于android开发人员,如果您还想支持24小时以下的api,请不要忘记使用
for(List lst:varArgs) {
    lst.forEach(str -> System.out.println(str));
}