Java ArrayList.add覆盖值

时间:2014-04-29 23:23:58

标签: java arraylist add

有这个课程

 public class Taxonomia {

    private static ArrayList<String> hijas;
    private static String padre;

    public Taxonomia (String p, ArrayList<String> h){
        hijas = h;
        padre = p;
        }

}

在另一个类中使用:

public class TablaSimbolica {

private static ArrayList<Taxonomia> taxonomias = new ArrayList<Taxonomia>();

public static void addTaxonomica(){

    System.out.println("enter value: ");
    String padre = Entrada.read(); //reads input and returns String
    System.out.println("entre value comma separated: ");
    String reemplazado = Entrada.read();
    ArrayList<String> items = new ArrayList<String>(Arrays.asList(reemplazado.split("\\s*,\\s*")));
    Taxonomia t = new Taxonomia (padre, items);
    taxonomias.add(t);  

}

从主要简单调用时(打印它只是...)

TablaSimbolica.addTaxonomica();
TablaSimbolica.addTaxonomica();
TablaSimbolica.printTax();

所有的对象是相同的,我无法弄清楚它在哪里缺少新对象的创建或类似的东西。提前谢谢!

1 个答案:

答案 0 :(得分:1)

Taxonomia类中的类变量为static,对于整个类而言,无论有多少实例,都只表示其中一个。

删除static,使每个实例成为一个。变化

private static ArrayList<String> hijas;
private static String padre;

private ArrayList<String> hijas;
private String padre;