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

标签 java

我试图使用 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/

相关文章:

java - 如何从 JSNI 调用 Dll 方法以在 GWT Web 应用程序中使用?

java - 二元运算符何时在 Java 中执行?

java - JTable 显示某一日期下的事件列表

java - Maven:将生成的 tomcat-maven-plugin 资源放在哪里?

java - 一项全程运行的 Activity

java - Ehcache 和 Hibernate

java - 无法执行 dex : Multiple dex files define Lcom/google/android/gms/ads/AdActivity;

java - 你如何计算具有初始高度的弹丸的位移?

java - 绘制一个大小可变的填充矩形

java - 如何动态更改 JFrame 内对 JPanel 的引用?