Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813

    [java] interfaccia cloneable

    ciao a tutti...
    vorrei fare una classe che abbia un metodo che mi restituisca un'istanza identica a quella di partenza...
    Ho visto che questo lo fa il metodo clone e l'interfaccia cloneable. ma ho dei dubbi:
    - cosa serve implementare questa interfaccia, visto che non contiene nulla?
    - perché il metodo clone è protected? Come posso fare a "richiamarlo" (se così possiamo dire) dall'esterno?
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] interfaccia cloneable

    Originariamente inviato da Hysoka
    - cosa serve implementare questa interfaccia, visto che non contiene nulla?
    Cloneable è vuota perché fa solo da "marcatore" (anche Serializable è una interfaccia marcatore).

    Originariamente inviato da Hysoka
    - perché il metodo clone è protected? Come posso fare a "richiamarlo" (se così possiamo dire) dall'esterno?
    In una TuaClasse devi fare l'override di clone(), dichiarandolo public, "aprendo" quindi l'accesso dall'esterno. Generalmente si fa innanzitutto un super.clone() per invocare il clone() di Object che: a) Verifica che l'oggetto implementi davvero Cloneable (ecco perché della "marcatura") e b) istanzia un nuovo oggetto e copia i valori di tutti i campi pari-pari. Chiaramente fa un "shallow-copy" per i reference. Se non è sufficiente per la tua classe, il tuo clone() deve preoccuparsi di clonare in modo "profondo" quello che è necessario.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.