我试图使用 for 循环和 if 语句从 ArrayList 返回一个对象。 Java 似乎没有将 List 的返回元素识别为要返回的对象。有什么建议吗?
import java.util.AbstractList;
import java.util.ArrayList;
public class RadioTowerController {
private AbstractList<RadioTower> alist = new ArrayList<RadioTower>();
public RadioTowerController(){
alist.add(null);
}
public void addRadioTower(RadioTower r){
alist.add(r);
}
public void removeRadioTower(RadioTower r){
for(int i = 0; i < alist.size(); i++){
if (alist.get(i).equals(r)){
alist.set(i, null);
}
}
}
public RadioTower findTowerforRadio(Radio r){
for(int i = 0; i < alist.size(); i++){
if(alist.get(i).covers(r)){
return alist.get(i);
}
}
}
}
最佳答案
Java 编译器希望确保该方法返回预期值。 在您的场景中,如果找不到任何内容(或列表为空),该方法将不会返回任何内容。
您只需要添加在这种情况下使用的 return 语句:
public RadioTower findTowerforRadio(Radio r){
for(int i = 0; i < alist.size(); i++){
if(alist.get(i).covers(r)){
return alist.get(i);
}
}
return null;
}
如果没有找到任何内容,该方法将返回 null
。
关于java - 当对 ArrayList 使用 .get() 时,该类无法将返回的元素识别为所需的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18037860/