Kopiowanie obiektu - metoda .clone()

Kopiowanie obiektu - metoda .clone()
Kamil9132
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 173
0

Witam
Dlaczego gdy próbuję utworzyć kopię obiektu w ten sposób otrzymuję błąd?

Kopiuj
public class Bitmap_Class implements Cloneable{

...    

	protected Object clone() throws CloneNotSupportedException {

        return super.clone();

    }
}
Kopiuj
Bitmap_Class Graphic_B;
Bitmap_Class Graphic_Source;

public Thread_Game(Bitmap_Class Graphic_B){

        this.Graphic_B = Graphic_B;
        this.Graphic_Source = (Bitmap_Class) Graphic_B.clone(); //Błąd

}

Error:(141, 61) error: unreported exception CloneNotSupportedException; must be caught or declared to be thrown

S9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 3573
0

Po 1 jak masz protected to jak możesz wywołać tą metode "jawnie"? Protected i private da się wywołać tylko w klasie która ma te metody a nie "na zewnątrz"
Po 2 czemu zwracasz Object a nie robisz Bitmap_Class kopiujesz całą zawartość i wtedy zwracasz klona obiektu?

Kamil9132
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 173
0

Kod dotyczący kopiowanie obiektu znalazłem w tym temacie:
http://stackoverflow.com/a/2847896/2420330

Co do protected i private to rozumiem że nie można ich wywołać poza klasą, jednak sądziłem że w tym przypadku jest to w jakiś sposób możliwe.

S9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 3573
0
Kamil9132 napisał(a):

Kod dotyczący kopiowanie obiektu znalazłem w tym temacie:
http://stackoverflow.com/a/2847896/2420330

Co do protected i private to rozumiem że nie można ich wywołać poza klasą, jednak sądziłem że w tym przypadku jest to w jakiś sposób możliwe.

Private i Protected zawsze działają tak samo,nigdy nie ma odstępstwa od tej reguły

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.