Полагаю, вы думаете, что следующая строка:
c.passTheBitmap(b.bitmap);
приведет к копированию b.bitmap
.Это не так, если b.bitmap
не является примитивом.
В вашем коде единственный способ создать вторую копию - это если вы намеренно создадите новый объект с помощью new
.
Например, в классе C
public passTheBitmap(Bitmap b) {
bitmap = new Bitmap(b);
}
Если вы сделаете так, как сделали:
public passTheBitmap(Bitmap b) {
bitmap = b;
}
... тогда Abbitmap и C.bitmap будут ссылаться натот же объект в памяти.
Если это был C ++, то у вас есть действительная проблема - но в Java то, что вы делаете, не делает копию передаваемого объекта.
HTH