Originariamente inviato da emaborsa
...domanda, solo per i tipi primitivi posso fare un semplice assegnamento vero? Dato che le stringhe sono pure Oggetti, l'esempio che ho fatto sopra non funziona.
Dovrei fare:

codice:
puclic Award(Award anAward){
 this.award = new String(anAward.getPath());
}
o sbaglio?
Non è necessario, perchè gli oggetti String sono immutabili.
Infatti, in questo esempio:
codice:
public class Award {
    public String s;

    public Award(Award aw) {
    	this.s = aw.s;
    }
    
    public Award(String s){
    	this.s = s;
    }

    public static void main(String[] args) {
        Award a = new Award("ciao");
        Award b = new Award(a);
        System.out.println("a : " + a.s);
        System.out.println("b : " + b.s);        
        b.s = a.s.concat(" e").concat(" arrivederci"); // qui vengono generate 2 istanze, la seconda verrà riferita da b.s
        System.out.println("a : " + a.s);
        System.out.println("b : " + b.s);
    }
}
ottieni l'effetto che desideri.
Cioè, modifichi l'istanza b senza che venga modificata anche a.