增强了循环错误

时间:2016-01-13 01:00:34

标签: java for-loop

enter image description here

public class ArrayMethodsTest
{
    public static void main(String[] args)
    {

        int[] tester = {0,1,2,3,4,5};
        ArrayMethods test = new ArrayMethods(tester);
        for(int element : test)
        {
            System.out.print(element + " ");
        }
        test.shiftRight();
        for(int element : test) //error: for-each not applicable to expression type
        {
            System.out.print(element + " ");
        }
    }
}

我想出了问题所在。感谢jigar joshi。但是,我仍然需要为我创建的测试人员使用ArrayMethods方法。我知道它们可以工作但是如何为一个不是数组的对象提供测试器类,因为这些方法适用于数组。

public class ArrayMethods
{
    public int[] values;
    public ArrayMethods(int[] initialValues)
    {
        values = initialValues;
    }
    public void swapFirstAndLast()
    {
        int first = values[0];
        values[0] = values[values.length-1];
        values[values.length-1] = first;

    }
    public void shiftRight()
    {
        int first = 0;
        int second = first;
       for(int i =0; i < values.length; i++) 
       {
        if(i < values.length-1)
        {
            first = values[i];
            second = values[i+1];
            values[i+ 1] = first;
        }
        if(i == values.length)
        {
            values[i] = values[0];
        }
       }
    }

}
//0,1,2,3,4,5
//5,0,1,2,3,4

2 个答案:

答案 0 :(得分:1)

testArrayMethods的引用,它不是Iterable或数组类型,错误是

答案 1 :(得分:0)

您已经遇到过无法迭代ArrayMethods的问题,因为它不可迭代。考虑到values是一个公共字段,您希望的内容会迭代其值,而不是for(int element : test.values) { System.out.print(element + " "); }

java -jar app.jar &