繁体   English   中英

添加元素集合的基类arraylist?

[英]Add collection of elements base class arraylist?

我正在使用两个类,一个是变量类,另一个是arraylist测试类。 我在variablesclass中添加了多个值。 如何添加元素集合的基类arraylist?

public class VariablesClass {

    private ArrayList<Integer> ids;
    private ArrayList<String> names;


    public ArrayList<Integer> getIds() {
        return ids;
    }
    public void setIds(ArrayList<Integer> ids) {
        this.ids = ids;
    }
    public ArrayList<String> getNames() {
        return names;
    }
    public void setNames(ArrayList<String> names) {
        this.names = names;
    }

}

主班

public class ArraylistTest {

    public static void main(String args[]) {

        VariablesClass varClass = null;
        try{
            varClass=new VariablesClass();

            varClass.setIds(11);
            varClass.getIds().add(12);
            varClass.getIds().add(13);
            varClass.getIds().add(14);
            varClass.getIds().add(15);
            varClass.getNames().add("karthick");
            varClass.getNames().add("Ramana");
            varClass.getNames().add("Priya");
            varClass.getNames().add("Madhu");
            varClass.getNames().add("Ammu");

        }catch(Exception e){
            e.getLocalizedMessage();
        }


        for(int is: varClass.getIds()){
            System.out.println("Integer Previous Class :"+is);
        }

    }

}

如何使用此类的获取/设置。 在这里我得到空指针异常如何解决呢?

您可以执行@sanket建议的操作,或者像下面这样使用当前类:

public static void main(String args[]) {
  VariablesClass varClass = null;

  try {
    varClass = new VariablesClass();
    ArrayList<Integer> ids = new ArrayList<Integer>();
    ArrayList<String> names = new ArrayList<String>();

    ids.add(11);
    ids.add(12);
    ids.add(13);
    ids.add(14);
    ids.add(15);

    varClass.setIds(ids);

    names.add("karthick");
    names.add("Ramana");
    names.add("Priya");
    names.add("Madhu");
    names.add("Ammu");

    varClass.setNames(names);
  } catch(Exception e) {
    e.getLocalizedMessage();
  }

  for(int is: varClass.getIds()){
    System.out.println("Integer Previous Class :"+is);
  }
}

上面的代码将为您提供一个空指针。 原因:您的数组列表未初始化。

您需要在类的构造函数中对其进行初始化。

此外,最好定义除getter和setter之外的其他方法,这些方法会将数据添加到数组列表中。

public class VariablesClass {


private ArrayList<Integer> ids;
private ArrayList<String> names;


 public VariablesClass() {
       ids = new ArrayList<Integer>();
       names = new ArrayList<String>();
    }

public ArrayList<Integer> getIds() {
    return ids;
}
public void setIds(ArrayList<Integer> ids) {
    this.ids = ids;
}
public ArrayList<String> getNames() {
    return names;
}
public void setNames(ArrayList<String> names) {
    this.names = names;
}

public void addName(String name)
{
    this.names.add(name);
}

public void addId(Integer id)
{
    this.ids.add(id);
}

}

根据需要多次调用方法addName!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM