2015-09-27 114 views
0

所以下面的方法的评论基本上是我需要完成的。从我创建的网站阵列获取下一个网站?

我有一个名为ResearchSite的类,它代表我创建的一个研究站点(它是一个简单的红色矩形,可以用鼠标按下来创建,并在点击鼠标时变成蓝色。接下来这个方法给了我一个变量,关于如何使用这个变量我很困惑,for循环是我创建的东西,我不确定它是否会起作用。

我该怎么去下一个变量?

请注意,名为_research的ArrayList是我创建的东西,可能不需要使用它,接下来的变量将最终需要使用。

private ResearchSite getNextSite() { 
    ResearchSite next = null; 
    /////////////////////////////////////////////////////////////// 
    // get next site from list of sites or from someone who has the 
    // list of sites. 
    /////////////////////////////////////////////////////////////// 

    for(int i = 0; i < _research.size(); i++) 
    { 
     _research.indexOf(0); 
     i++; 
    } 

    return next; 
} 
+0

我真的很困惑你想要达到的目标。如果你只想得到数组的下一个值,那么类中的一个简单的计数器将会很好。你为什么要调用'i ++'两次? for循环的目的是什么?也许一个[mcve]会阻止像这样的更愚蠢的问题被问到:P –

+0

考虑到问题中提出的内容,不可能回答,因为不清楚你想从哪里获得下一个“ResearchSite”。它被分配到第二行的'null'。把'null'看作'ResearchSite next'没有被分配给任何'ResearchSite'的含义,直到你将它分配给一个实际的值,它总是为'null'。我希望'ResearchSite'或者使用'new'关键字来初始化,例如E.G. '新的ResearchSite()',传入必要的任何构造函数参数或者通过返回'ResearchSite'的方法填充。 –

+0

顺便说一句,在这个例子中,for循环和_research列表是冗余的。 –

回答

0

您不需要循环来从数组中拉出下一个元素。您需要一个计数器指向下一个元素,并在每次调用中增加该计数器。变量必须在方法之外(静态或不是 - 取决于您的代码)

public class ResearchSite { 
private static int nextIndex = 0; 
private ResearchSite getNextSite() { 
    return _research[nextIndex++]; 
} 
}