Java 使用forEach在varArgs上迭代
我可以在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
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));
}