Java Can';在Arraylist中找不到.get()

Java Can';在Arraylist中找不到.get(),java,arraylist,Java,Arraylist,由于某些原因,.get()在我的代码中不是有效的方法。有人能指出错误吗?(很抱歉对象名称不正确(不打算共享此代码)) 传唤密码 import java.util.ArrayList; public class Summoned_Bin { ArrayList<Summon> Bin = new ArrayList<Summon>(); Summoned_Bin() { } void addToBin() { Summon summone

由于某些原因,
.get()
在我的代码中不是有效的方法。有人能指出错误吗?(很抱歉对象名称不正确(不打算共享此代码))

传唤密码

import java.util.ArrayList;
public class Summoned_Bin
{
  ArrayList<Summon> Bin = new ArrayList<Summon>();

  Summoned_Bin()
  {
  }

  void addToBin()
  {
    Summon summoned = new Summon();
    int index = 0;
    while (Bin.get(index) != null)
    {
      index++;
    }
    Bin.add(index , summoned );
  }
}
import java.util.ArrayList;
公开课传唤吴斌
{
ArrayList Bin=新的ArrayList();
传唤_Bin()
{
}
void addToBin()
{
召唤召唤=新召唤();
int指数=0;
while(Bin.get(index)!=null)
{
索引++;
}
Bin.add(索引,传唤);
}
}

召唤的_Bin不是ArrayList,因为它不扩展ArrayList类。相反,它包含一个数组列表。要知道这很好,通过组合而不是继承来增强类是可以的,但是不要试图直接在类上使用任何ArrayList方法

您有两种常见的解决方案:

  • 您可以让它扩展ArrayList,但我不确定这是否是最好的做法,或者
  • 您可以为它提供公共方法,允许外部类提取信息 例如,给它一个
    get(…)
    方法:

    public Summon get(int index) {
      return Bin.get(index);
    }
    

    编辑

    正如nachokk正确地建议的那样,您需要学习和遵循,因为这样做会使其他人更容易理解您的代码。

    请注意(不要停留在悬停状态),请遵循并坚持!正如我所说的“为不正确的对象名称感到抱歉(没有计划共享代码)”@Programmer-Lvl1没有正确的缩进,即使对你来说也很难理解read@Programmer-Lvl1:您希望所有代码(包括“私有”代码)都遵守约定。通过遵循良好的编码习惯,您可以强制执行它们,然后它们将在您未来的代码中持续存在,甚至不必考虑它们。您能否详细介绍一下您的选项2?(得到你关于编码习惯的建议)编辑:想想别的。。。(对不起)可能重复这是怎么重复的?也许你的意思是
    Bin.Bin.get(0)
    ?尽管以下答案中的解决方案更具建议性。
    public Summon get(int index) {
      return Bin.get(index);
    }