语法错误,'for each'语句仅在源级别为1.5或更高时可用

时间:2014-01-25 21:47:59

标签: java

收到以下错误:

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);   
        }
    }
}

请帮助..

5 个答案:

答案 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中更改编译器的编译级别:-

  1. 点击Windows,转到首选项。
  2. 从选项中选择Java,在下拉菜单中选择编译器。
  3. 将编译器的编译级别更改为1.5或更高。

点击链接以供参考:https://i.stack.imgur.com/79tvV.png

答案 4 :(得分:1)

这是日食。

窗口->首选项-> Java->编译器->配置项目特定设置->双击创建的“项目名称”->取消选中“从执行环境使用合规性”->然后选择“编译器合规性级别”为1.5或更高(最好选择最大和最新的最后一个级别)

完成。现在应用并关闭所有。重新运行程序。