Строки и целые числа неизменны. Пересмотрите свою структуру данных, чтобы использовать изменяемую структуру, которая содержит ссылки, такие как массив или коллекция. Э.Г.
public class Shallow {
private Object[] properties = new Object[2];
public Shallow(String name, int number) {
this.properties[0] = name;
this.properties[1] = number;
}
public Shallow(Shallow s) {
this.properties = s.properties;
}
public String getName() {
return (String) properties[0];
}
public void setName(String name) {
this.properties[0] = name;
}
public int getNumber() {
return (Integer) properties[1];
}
public void setNumber(int number) {
this.properties[1] = number;
}
}
И используйте методы получения / установки вместо прямого доступа к свойствам.
Shallow shallow = new Shallow("Shallow", 123);
Shallow shallowClone = new Shallow(shallow);
shallowClone.setName("Peter");
shallowClone.setNumber(321);
System.out.println(shallow.getName() + " - " + shallow.getNumber()); // Peter - 321
Также обратите внимание, что строки обычно заключаются в двойные кавычки. В будущем , пожалуйста, скопируйте фактический, компилируемый и рабочий код из вашего редактора вместо того, чтобы вводить его поверх или сверху. Избегайте красных селедок.