2015-05-19 3 views
-4
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. Объекты создаются со значениями p_nom, p_type, ... из ObjetsTWS (...). Мне нужно, чтобы вернуть этот список в ajouterJob, чтобы добавить другую информацию. Но у меня есть зависимости в списке только с первым объектом. Как я могу взять весь список?Использовать один и тот же арреалист двумя способами:

+1

Переформулируйте свой вопрос. –

+0

Я хочу использовать свои зависимости от arraylist в ajouterJob (...). Как я могу это сделать? – Subas

+0

Вы хотите сказать, что любые экземпляры 'ObjectTWS' создаются в JVM, они должны быть добавлены в список' dependancies' – Blip

ответ

0

Вы можете изменить подпись своего метода.

public void ajouterJob(List<ObjetTWS> myVariable) { 

} 

После этого вызова этого метода с переменным ..

0

Я хочу использовать свои Список_массивов dependances в ajouterJob (...). Как я могу это сделать?

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*/); 
    } 
+0

Я хочу это сделать. Но я не беру обратно аррайалист, завершенный с ObjetTWS (...). – Subas

+0

@Subas Извините, я вас совсем не понимаю. Вы хотите вернуть 'ArrayList' в методе? –

+0

Я хочу использовать Arraylist в ajouterJob, и этот arraylist заполняется ObjetTWS() – Subas

1

В вашем коде каждый ObjectTWS имеет собственный dependances список. Поэтому логично, что ваш список всегда содержит только один элемент. Если вам нужен список всех объектов, сделайте dependances переменной static.

+0

Это один из способов ... иначе зависимости ArrayList могут быть объявлены и использованы в основном классе, где используется ObjetTWS. – vicky96

+0

Ничего не меняет. В ObjetTWS a есть список всех объектов.Я проверяю: ListIterator itr = dependances.listIterator(); \t в то время как (itr.hasNext()) { \t \t System.out.println ("Список_массивов:" +. Itr.next() ном); } И только первый объект в ajouterJob() с тем же тестом – Subas

+0

Использование static должно быть ** последним ** курортом. – GhostCat

0

список будет containt в каждый момент времени только один объект ObjetTWS, созданный в конструкторе, это утверждение в конструкторе ложна: 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; 
Смежные вопросы