2017-01-08 7 views
-2

I имеют следующую структуру:Java и объекты в ArrayList

enter image description here

У меня есть класс A с ArrayList. В нем перечислены элементы, являющиеся объектами класса B. Объекты в классе B ArrayList являются, если тип класса C.

Я хочу, чтобы добавить метод класса A, так что я мог бы добавить элемент (специфический индекс в ArrayList A) к классу B «s ArrayList.

Что-то вроде этого:

class A -> ArrayList A -> index 2-> B.add(some_element); 

Является ли это непосредственно возможно, или я должен сначала получить объект из A «s списка-массива, а также внести изменения и добавить его обратно?

+0

Не совсем понятно, вы должны дать код из трех классов. Что-то вроде A.get (2) .geB(). Add («Я новичок»); ? –

+0

Можете ли вы поделиться некоторым кодом, чтобы сделать некоторые вещи более ясными? – Jonas

+0

Что вы предлагаете, это хорошее решение. Новый метод в 'A' вызовет метод в' B', чтобы добавить в список 'B'. Поэтому вам нужно будет написать новые методы в обоих классах. Это стоит того. –

ответ

0

Если у вас есть три класса А, В и С, вы просто могли бы сделать это следующим образом:

class A { 
    ArrayList<B> arrayListB = new ArrayList<>(); 
} 

class B { 
    ArrayList<C> arrayListC = new ArrayList<>(); 
} 

class C { 
    String cName; 
} 
//for example setting attribute cName, in first element of arrayListC, in the first element of array listB in obj a (of type class A) 
A a = new A(); 
a.arrayList.get(1).arrayList.get(1).cName="sth"; 

НО я сильно препятствовать вам сделать это, потому что это нарушает закон Димитр link here и here

+0

Я согласен с разочарованием. Почему вы показываете плохое решение, а не хорошее? PS «Закон Деметры» также известен как «не разговаривайте с незнакомцами». –

Смежные вопросы