有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用时使用java。get()对于ArrayList,该类无法将返回的元素识别为所需的对象

我试图使用for循环和if语句从ArrayList返回一个对象。Java似乎没有将列表中返回的元素识别为要返回的对象。有什么建议吗

    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);
                }

            }



        }

    }

共 (1) 个答案

  1. # 1 楼答案

    Java编译器希望确保该方法返回预期值。 在您的场景中,如果没有找到任何内容(或者列表为空),该方法将不会返回任何内容

    您只需要添加在这种情况下使用的返回语句:

    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