在两种方法中使用相同的Arraylist

时间:2015-05-19 11:23:27

标签: java object arraylist

public class ObjetTWS {

    String nom;
    List<String> jobAmont = new ArrayList<String>();
    List<String> jobAval = new ArrayList<String>();
    String type;

    public ArrayList<ObjetTWS> dependances;

    public ObjetTWS() {

    }

    public ObjetTWS(String p_nom, String p_type, String p_jobAmont,
            String p_jobAval) {

        ObjetTWS obj = new ObjetTWS();

        obj.nom = p_nom;
        obj.jobAmont.add(p_jobAmont);
        obj.jobAval.add(p_jobAval);
        obj.type = p_type;

        dependances = new ArrayList<ObjetTWS>();
        dependances.add(obj);

    }

    public void ajouterJob(String p_nom, String p_jobAmont, String p_jobAval) {

    }

}

在ObjetTWS(...)中,我用ObjetTWS对象填充我的列表。使用ObjetsTWS(...)中的p_nom,p_type,...值创建对象。我需要在ajouterJob中取回此列表后添加一些其他信息。但我的列表依赖于第一个对象。我怎么能拿到所有的名单?

4 个答案:

答案 0 :(得分:1)

在您的代码中,每个ObjectTWS都有自己的dependances列表。因此从逻辑上看,您的列表始终只包含一个元素。如果您需要所有对象的列表,请将dependances变量设为静态。

答案 1 :(得分:0)

您可以更改方法的签名。

public void ajouterJob(List<ObjetTWS> myVariable) {

}

之后用你的变量调用这个方法..

答案 2 :(得分:0)

  

我想在ajouterJob(...)中使用我的arraylist依赖。我怎么能这样做?

public class ObjetTWS {
   public List<ObjectTWS> dependances = new ArrayList<>();

  public void ajouterJob(String p_nom, String p_jobAmont, String p_jobAval) {
     // use dependances here
     dependances.add(/*stuff*/);
    }
}

很确定你想要有不同的东西。只需评论这个答案。

public ObjetTWS(String p_nom, String p_type, String p_jobAmont,
                String p_jobAval) {

        ObjetTWS obj = new ObjetTWS();

        obj.nom = p_nom;
        obj.jobAmont.add(p_jobAmont);
        obj.jobAval.add(p_jobAval);
        obj.type = p_type;

        //dependances = new ArrayList<ObjetTWS>();
                      ^ delete this line
        dependances.add(obj);

    }

    public void ajouterJob(String p_nom, String p_jobAmont, String p_jobAval) {
        dependances.get(/* the index you need*/);
    }

答案 3 :(得分:0)

每次只在构造函数中创建一个ObjetTWS对象时,您的列表将包含,构造函数中的此语句为false:ObjetTWS obj = new ObjetTWS();

你的构造函数应该如下所示:

public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval){

   this.nom = p_nom;
   this.jobAmont.add(p_jobAmont);
   this.jobAval.add(p_jobAval);
   this.type = p_type;

  dependances.add(obj);

}

对于dependences列表,您应该使用类变量在所有ObjetTWS个实例之间共享,每次创建新的ObjetTWS对象时,都要将其添加到列表中,这样的事情:

public static ArrayList<ObjetTWS> dependances;