java中的foreach循环出错,Syntax error
代码:importjava.util.*;publicclassFixedSizeList{publicstaticvoidmain(String[]args){List...
代码:
import java.util.*;
public class FixedSizeList
{
public static void main(String[] args)
{
List fixedList = Arrays.asList("疯狂Java讲义"
, "轻量级Java EE企业应用实战");
// 获取fixedList的实现类,将输出Arrays$ArrayList
System.out.println(fixedList.getClass());
// 使用方法引用遍历集合元素
fixedList.forEach(System.out::println);//错误代码所在行
// 试图增加、删除元素都会引发UnsupportedOperationException异常
fixedList.add("疯狂Android讲义");
fixedList.remove("疯狂Java讲义")
}
}
错误提示:
Syntax error on token(s), misplaced construct(s)
Syntax error on token ":", EnhancedForStatementHeaderInit expected after this token 展开
import java.util.*;
public class FixedSizeList
{
public static void main(String[] args)
{
List fixedList = Arrays.asList("疯狂Java讲义"
, "轻量级Java EE企业应用实战");
// 获取fixedList的实现类,将输出Arrays$ArrayList
System.out.println(fixedList.getClass());
// 使用方法引用遍历集合元素
fixedList.forEach(System.out::println);//错误代码所在行
// 试图增加、删除元素都会引发UnsupportedOperationException异常
fixedList.add("疯狂Android讲义");
fixedList.remove("疯狂Java讲义")
}
}
错误提示:
Syntax error on token(s), misplaced construct(s)
Syntax error on token ":", EnhancedForStatementHeaderInit expected after this token 展开
2个回答
展开全部
最佳答案错了,大家别被误导
1、
2、
3、
4、
5、
简单来说,JDK1.8之前的foreach循环指的都是for循环的另一种用法:for(Object o : objects),区别于最经典的for(;;),而JAVA8(JDK1.8)中在对java集合类(Set、List、Map、Queue)的遍历中新增了一个foreach的类方法用于集合内循环。所以问题中的语法是可用的。
补充:由JDK1.8中的描述,foreach的参数是一个Consumer对象,该对象是一个函数式接口,凡是函数式接口的对象都可以直接使用Lambda表达式,而题目中的System.out::println()就是一个简化了的Lambda,省略了参数和括号而已。
展开全部
fixedList.forEach(System.out::println);这代码这么奇葩,forEach不是这么用的吧?java也没什么forEach()方法
for(String a:fixedList){
System.out.println(a);
}
for(String a:fixedList){
System.out.println(a);
}
更多追问追答
追问
代码是书上的一个例子,反正我是愣没看懂,java里面是有foreach循环的吧?
追答
所谓的forEach只是一种名称,
形式如:
for(String a:fixedList){
}
就是froEach,没有具体的froEach()方法
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询