Java Cloneable или конструктор копирования, зачем мне использовать какой-либо из них? Что на самом деле делает любая из этих стратегий?

Вопрос, который у меня возник, довольно нубийский, поэтому, пожалуйста, извините меня за мое невежество, так как я нуб.

Я наткнулся на код, написанный некоторыми консультантами в компании, в которой я работаю. Когда я попытался углубиться в код, я не знал, почему класс реализует некоторый интерфейс, называемый clonable. Поэтому я попытался погуглить этот клонируемый беспорядок, и все, что я вижу, это что-то вроде "не используйте его" или "вместо этого используйте конструктор копирования". Я не знаю, что из этого есть. Может ли кто-нибудь, пожалуйста, уточнить причины, когда этот вид клонирования действительно необходим? Зачем мне клонировать объект?

Я говорил с бывшим консультантом, и он упомянул, что это позволит нам, очевидно, связать методы. подобно questionSet.dosomething().doAnotherThing().dowth();

public class QuestionSet implements Cloneable {
     ...

    /* (non-Javadoc)
     * @see java.lang.Object#clone()
     */
    @Override
    public QuestionSet clone() {
        return new QuestionSet(this);
    }

    ...
}

1 ответ

Решение

Он используется в ситуациях, когда вы передаете объект какой-либо другой стороне. Если объект изменчив, и вы не хотите рисковать тем, что другая сторона изменит ваш объект, вы можете предоставить ему просто клон или копию вашего объекта вместо оригинала.

Другие вопросы по тегам