有 Java 编程相关的问题?

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

java Arraylist编译器让我很困惑

出于某种原因,当我编译这段简单的代码时,会弹出一个错误。(如果我有10个代表,我会发布它)它基本上说(文件目录)使用未经检查或不安全的操作。使用-Xlint重新编译:未选中以获取详细信息。我做了一点实验,如果我去掉Bin.add(),错误就会消失。有人能解释一下我该怎么做吗

ERROR!!!

import java.util.ArrayList;
public class Summoned_Bin
{

ArrayList Bin = new ArrayList();

Summoned_Bin()
{

}

void addToBin()
{
    Summon summoned = new Summon();
    int index = 0;
    while (Bin.get(index) != null)
    {
        index++;
    }
    Bin.add(index , summoned ); //Without this it runs fine
}

}

共 (2) 个答案

  1. # 1 楼答案

    这不是错误,只是警告

    要执行显式类型定义:

    ArrayList<Summon> Bin = new ArrayList<Summon>();
    
  2. # 2 楼答案

    我想它希望您键入列表List<Summon> Bin = new ArrayList<Summon>();

    有三件事需要注意:

    将类型声明为List<Summon>而不是ArrayList<Summon>这是使用接口的最佳实践,这将允许您在以后更改类型

    Summoned_Bin类应该遵循Java命名标准,因此SummonedBin应该是名称

    另外SummonedBin对象的名称应该遵循Java命名标准,使用bin而不是Bin

    修订课程

    public class SummonedBin {
    
        List<Summon> bin = new ArrayList<Summon>();
    
        SummonedBin() {
    
        }
    
        void addToBin() {
            Summon summoned = new Summon();
            int index = 0;
            while (bin.get(index) != null) {
                index++;
            }
            bin.add(index, summoned); 
        }
    }