[code]
public class ClasseA {
public ClasseA(int a) {
this.setA(a);
}
public void setA(int a) {
this.a = a;
}
public int getA() {
return a;
}
private int a;
}[/code]
import java.util.ArrayList;
public class ClasseB {
private ArrayList<ClasseA> array = new ArrayList<ClasseA>();
public void setArray(ArrayList<ClasseA> array) {
this.array = array;
}
public ArrayList<ClasseA> getArray() {
ArrayList<ClasseA> retorno = new ArrayList<ClasseA>();
for (int i = 0; i < array.size(); i++) {
retorno.add(array.get(i));
}
return retorno;
}
}
public class Principal {
public static void main(String[] args) {
ClasseB b1 = new ClasseB();
ClasseB b2 = new ClasseB();
for (int i = 0; i < 15; i++) {
b1.getArray().add(new ClasseA(i));
}
b2.setArray(b1.getArray());
for (int i = 0; i < b2.getArray().size(); i++) {
System.out.println(b2.getArray().get(i).getA());
}
}
}
Eu queria que o meu getArray fosse disvinculado do objeto principal, por isso tentei fazer desse jeito, mas nao esta dando certo, alguem sabe como fazer?
Isso realmente funciona, mas gera um problema que eu estava tentando fugir desde o começo. Que é a lista que esta no objeto b1 ser a mesma que está no objeto b2. Dessa forma se eu fizer:
[code]
public class ClasseA {
public ClasseA(int a) {
this.setA(a);
}
public void setA(int a) {
this.a = a;
}
public int getA() {
return a;
}
private int a;
}[/code]
import java.util.ArrayList;
public class ClasseB {
private ArrayList<ClasseA> array = new ArrayList<ClasseA>();
public void setArray(ArrayList<ClasseA> array) {
this.array = array;
}
public ArrayList<ClasseA> getArray() {
ArrayList<ClasseA> retorno = new ArrayList<ClasseA>();
for (int i = 0; i < array.size(); i++) {
retorno.add(array.get(i));
}
return retorno;
}
public ArrayList<ClasseA> getList(){
return array;
}
}
public class Principal {
public static void main(String[] args) {
ClasseB b1 = new ClasseB();
ClasseB b2 = new ClasseB();
for (int i = 0; i < 15; i++) {
b1.getList().add(new ClasseA(i));
}
b2.setArray(b1.getArray());
b1.getArray().get(3).setA(8);
System.out.println(b2.getArray().get(3).getA());
}
}
Eu altero a lista do objeto b1 e a do b2 também é alterada. Como eu me livro dessa dependencia?