0

我正在尝试使用 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);
                }

            }



        }

    }
4

1 回答 1

2

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如果没有找到,该方法将在此处返回。

于 2013-08-03T22:23:20.850 回答