Всем привет.
Вопрос, как достучаться до массива?
У меня при обращении из класса A я получаю длину массива 0, хотя он заполняется на больше чем 100 элементов. Если вывести содержимое из класса С, пока он его заполняет, то он покажет все содержимое,
Class A {
B b = new B();
C c = new C();
public static void main(){
b.doSmth();
System.out.print(c.getArrayList());
}
}
Class B {
C c=new C();
c.setArrayList(String s);
}
Class C {
private ArrayList list=new ArrayList();
setArrayList(String s){
list.add(s);
}
getArrayList(){
return list.size();
}
}
У вас создается два разных объекта класса C, поэтому массив пустой.
Ваш код должен выглядеть так:
public class A {
B b;
A(B b) {
this.b = b;
}
public void method() {
b.method();
}
public static void main(String[] args) throws Throwable {
C c = new C();
B b = new B(c);
A a = new A(b);
a.method();
System.out.println(a.b.c.getArrayList());
}
}
class B {
C c;
public B(C c) {
this.c = c;
}
void method() {
c.setArrayList("hello");
}
}
class C {
private ArrayList list = new ArrayList();
public void setArrayList(String s) {
list.add(s);
}
public int getArrayList() {
return list.size();
}
}
Вообще не очень хорошая композиция классов, вам нужно лучше о ней подумать.
Продвижение своими сайтами как стратегия роста и независимости