使用forEach迭代varArgs

时间:2015-10-13 16:13:36

标签: 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.stream();
   }

2 个答案:

答案 0 :(得分:15)

Varargs的行为与数组类似,因此您可以使用Stream获得Stream.of个varargs:

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

你可以用以下方法迭代它们:

Stream.of(varArgs).forEach (...);

答案 1 :(得分:-1)

你的语法混乱。试试这个:

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