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
展开
 我来答
vaeorzwei1234
推荐于2018-04-07 · TA获得超过408个赞
知道答主
回答量:130
采纳率:0%
帮助的人:67.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,省略了参数和括号而已。

陈亮424
推荐于2016-03-21 · TA获得超过634个赞
知道小有建树答主
回答量:626
采纳率:0%
帮助的人:416万
展开全部
fixedList.forEach(System.out::println);这代码这么奇葩,forEach不是这么用的吧?java也没什么forEach()方法
for(String a:fixedList){
System.out.println(a);

}
更多追问追答
追问
代码是书上的一个例子,反正我是愣没看懂,java里面是有foreach循环的吧?
追答
所谓的forEach只是一种名称,
形式如:
for(String a:fixedList){

}
就是froEach,没有具体的froEach()方法
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式