У меня небольшая проблема в Java. У меня есть интерфейс под названием Modifiable. Объекты, реализующие этот интерфейс, являются Модифицируемыми.Обязательный клонный интерфейс в Java
У меня также есть класс ModifyCommand (с шаблоном Command), который получает два модифицируемых объекта (чтобы поменять их в списке дальше - это не мой вопрос, я уже разработал это решение).
Класс ModifyCommand начинается с создания клонов модифицируемых объектов. Логически, я сделал мой Модифицируемый интерфейс расширяет Cloneable. Затем интерфейс определяет метод clone(), который должны быть переопределены его классами реализации.
Затем, в ModifyCommand, я могу сделать: firstModifiableObject.clone(). Моя логика заключается в том, что классы, реализующие Modifiable, должны будут переопределить метод clone из Object, поскольку они будут Cloneable (это то, что я хочу сделать).
Дело в том, что когда я определяю классы реализует Модифицируемое, и я хочу переопределить clone(), он не позволит мне, заявив, что метод clone() из класса Object скрывает объект из Modifiable.
Что мне делать? Я нахожусь под впечатлением, что «я делаю это неправильно» ...
Спасибо,
Гийом.
Редактировать: он думает, что я забуду клон(). Я либо а) предполагаю, что объект, переданный объекту Modifiable (реализующий интерфейс), уже клонирован или b) создает другой метод, называемый, например, copy(), который будет в основном делать глубокую копию объекта Modifiable (или, может быть, общее решение будет работать ...).
Вы правы. Хороший маленький трюк! И, как вы подозревали, на Java 5 отлично работает. – 2008-12-30 15:53:24