2017-01-08 2 views
-2

je la structure suivante:Java et objets ArrayList

enter image description here

Je classe A avec un ArrayList. Ceci liste les éléments qui sont des objets de la classe B. Les objets de la classe B ArrayList sont de type classe C.

Je veux ajouter une méthode à la classe A, donc je pourrais ajouter un élément (de l'indice spécifique ArrayList A) à la classe B « s ArrayList.

Quelque chose comme ceci:

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

Est-ce possible directement, ou dois-je d'abord obtenir un objet à partir de A tableau-liste, et apporter des modifications et l'ajouter à nouveau?

+0

Ce n'est pas très clair, vous devriez donner le code des trois classes. Quelque chose comme A.get (2) .geB(). Add ("Je suis nouveau"); ? –

+0

pouvez-vous partager du code pour rendre certaines choses plus claires? – Jonas

+0

Ce que vous suggérez est la bonne solution. La nouvelle méthode dans 'A' appellera une méthode dans' B' pour l'ajouter à la liste 'B'. Vous devrez donc écrire de nouvelles méthodes dans les deux classes. Ça en vaut la peine. –

Répondre

0

Si vous avez trois classes A, B et C vous pouvez simplement le faire comme ceci:

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"; 

Mais je décourage fortement de le faire, car il viole la loi de Dimiter link here et here

+0

Je suis d'accord avec le découragement. Pourquoi montrez-vous la mauvaise solution et non la bonne? PS "Law of Demeter" est également connu comme "ne parle pas aux étrangers". –