java - 构造函数返回意外的 null

标签 java arraylist constructor

这里是java初学者!

我想要一个对象模型,它是随机坐标列表,并且根据(*),当主运行模型(200)时,ArrayList不为空。但是当我运行 main 时,当我使用 (**) 周围的打印输出进行测试时,出现越界错误:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 

是构造函数模型有问题吗?

public class Model extends ArrayList<Particle>{ 
private ArrayList<Particle> particleList;

public Model(int N) {
    ArrayList<Particle> list1 = new ArrayList<Particle>();
    Particle newParticle = new Particle(); 
    for(int i=0;i<N;++i){
        list1.add(newParticle);
        newParticle = new Particle();
        //String s= String.valueOf(newParticle.x);
        //System.out.println(s);
        }
    this.particleList = list1;
    Particle p1 = particleList.get(5);
    double d = p1.x;
    String s = String.valueOf(d);
    System.out.println(s);                            (*)
}

public static void main(String[] args){
    Model x1 = new Model(200);
    Particle p1 = x1.get(0);                           (**)
    double d = p1.x;
    String s = String.valueOf(d);
    System.out.println(s);
}

最佳答案

您混淆了 Model 实际上是的数组,因为它是从 ArrayList 扩展而来的,而您的 Model 包含的 ArrayList 则是它的扩展。

如果您希望您的模型是 ArrayList,则不需要该 molecularList 属性。你可以这样做:

public class Model extends ArrayList<Particle> { 

  public Model(int N) {
      for (int i = 0; i < N; i++) {
          Particle newParticle = new Particle();
          this.add(newParticle);
      }
  }
}

public static void main(String[] args){
    Model x1 = new Model(200);
    Particle p1 = x1.get(0);                           (**)
    double d = p1.x;
    String s = String.valueOf(d);
    System.out.println(s);
}

关于java - 构造函数返回意外的 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42005416/

相关文章:

java - 按钮的 ActionListener

java - 数组删除重复项时出现问题

java - NullPointerException,在scala中填充vaadin的IndexedContainer时

java - Android 的数组和 ListView (java)

java - Arraylist 删除第一次出现,而不是一个确切的对象

C++:对象和外部函数的生命周期

java - 基于子字符串过滤数据库结果在android中

java - 如何使用 java 中数组中的值更新 JTable

c# - 构造函数中的数据不正确

javascript - 在javascript中引用父对象