Несмотря на критику функции клонирования объектов в Java, если вам нужно реализовать метод
clone(), вот несколько лучших практик для упрощения задачи:public Course clone() {
Course c = null;
try {
c = (Course)super.clone();
} catch (CloneNotSupportedException e) {} // Не произойдет
return c;
}🗣️ Этот код использует тот факт, что метод
clone() не вызовет CloneNotSupportedException, если класс реализует интерфейс Cloneable. Возврат подкласса называется ковариантным переопределением методов и доступен с Java 5, что позволяет избежать приведения типа на стороне клиента:Course javaBeginners = new Course("Java", 100, 10);
Course clone = javaBeginners.clone();Ранее, например, с классом Date, нужно было явно приводить результат метода
clone():Date d = new Date();
Date clone = (Date) d.clone();
Java Learning 👩💻
