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
答案 0 :(得分:1)
test
是ArrayMethods
的引用,它不是Iterable
或数组类型,错误是
答案 1 :(得分:0)
您已经遇到过无法迭代ArrayMethods
的问题,因为它不可迭代。考虑到values
是一个公共字段,您希望做的内容会迭代其值,而不是for(int element : test.values) {
System.out.print(element + " ");
}
。
java -jar app.jar &