收到以下错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Syntax error, 'for each' statements are only available if source level is 1.5 or greater at Tuto.OneDimArrays.main(OneDimArrays.java:14)
代码:
public class OneDimArrays {
public static void main(String[] args) {
int[] xabc = new int[5];
xabc[2]=20;
xabc[0]=50;
for(int temp:xabc){
System.out.println(temp);
}
}
}
请帮助..
答案 0 :(得分:17)
如果您使用的是Eclipse IDE,请右键单击项目,转到属性,Java编译器,选中“启用项目特定设置”并将“编译器合规性”级别设置为大于1.5。我通过将其设置为1.6解决了这个问题。 希望它有所帮助
答案 1 :(得分:3)
错误告诉您问题究竟是什么。您正在使用for-each循环:
for(int temp : xabc)
{
System.out.println(temp);
}
此语法仅在Java 1.5中添加,因此您似乎正在使用早期版本进行编译。在不知道你正在使用什么IDE /环境的情况下,我无法告诉你如何解决这个问题,但看看你是否能找到一种使用更新版本的java编译代码的方法。
请注意,JRE(Java运行时环境)和JDK(Java Development Kit)之间存在差异。 JRE用于在您的计算机上运行Java程序,而JDK用于在您的计算机上编写Java程序。通常,您的系统仅在JRE过时时向您发出警告(因为大多数计算机用户不编写代码,甚至可能没有安装JDK)。因此,即使您的JRE是最新的,除非您拥有正确的JDK,否则您将无法编译最新功能。
如果您使用的是旧版JDK,则可以下载最新版本here。
如果您使用的是最新的JDK,则必须更改项目中的某些设置才能使用它。
如果由于某种原因这些都不是一个选项,你可以使用1.5之前的语言结构来模拟for-each循环。帕特的答案中描述了最基本的方法。
答案 2 :(得分:2)
如果可以,请在更高版本的java中编译。
如果由于某种原因无法使用更高版本的java,只需使用常规for循环:
for(int i = 0; i < xabc.length; i++) {
int temp = xabc[i];
System.out.println(temp);
}
答案 3 :(得分:1)
尝试在Eclipse中更改编译器的编译级别:-
点击链接以供参考:https://i.stack.imgur.com/79tvV.png
答案 4 :(得分:1)
这是日食。
窗口->首选项-> Java->编译器->配置项目特定设置->双击创建的“项目名称”->取消选中“从执行环境使用合规性”->然后选择“编译器合规性级别”为1.5或更高(最好选择最大和最新的最后一个级别)
完成。现在应用并关闭所有。重新运行程序。