Как отменить, java

Я только начал с java, и у меня есть методы, которые поддерживают изменения и хранят значения до и после изменений, и я должен иметь возможность их отменить. И извините за лишний текст, просто хочу быть максимально ясным. Я не могу понять, как сохранить значения до и после изменения и сделать их "отменяемыми". Буду признателен за любые идеи о том, как подойти к этому.

public void setName(String name)

Устанавливает название продукта. Переданное имя может быть нулевым или пустой строкой. Если переданное имя равно нулю, имя инициализируется пустой строкой. Перед изменением имени сохраняется текущее состояние, поэтому это действие можно отменить.

public boolean undo()

Отменяет последнее изменение. Возвращает истину, если текущее состояние этого объекта было изменено этой операцией. Если никакие изменения нельзя отменить, возвращается false.


person Teardrop    schedule 12.04.2018    source источник
comment
С какой проблемой вы столкнулись?   -  person apilat    schedule 12.04.2018


Ответы (1)


Вы можете использовать личное поле java.util.Stack history. На setName(name) вы можете вставить значение в history, а также установить его в поле name.

На undo() вы можете вытолкнуть из history, снова установив name из значения popped.

Также вы catch(EmptyStackException), чтобы вы могли вернуть false, если стек пуст.

person Marinos An    schedule 12.04.2018