Witam
Pisze klasę, która z punktu widzenia użytkownika ma być stała (tak jak String). W tej klasie mam metodę, która zwraca kolekcję. Oczywiście muszę zrobić to poprzez referencję. Przykładowy kod
public class A {
Collection<Integer> tab;
public A() {
tab.add(12);
}
Collection<Integer> get() {
return tab;
}
}
Gdy zwracam referencję do tab umożliwiam również niekontrolowaną zmianę tej kolekcji przez użytkownika np:
A a = new A();
a.get().add(5);
Czy ktoś wie jak temu można zapobiec? Myślałem nad zwróceniem kopii kolekcji ale to wydało mi się zbyt wolne i pamięciożerne.
Pozdrawiam.