У меня странная ситуация, когда у меня есть класс TheClass, реализующий интерфейс TheInterface, и класс TheClass должен иметь метод copy () с возвращаемым типом TheInterface, и он должен делать поверхностную копию самого себя.При попытке вызвать мою функцию copy () и использовать ее, я получаю сообщение о несовместимости типов.Мне нужно сохранить тип возвращаемого значения метода copy () как есть.
Есть ли способ как это сделать?
Спасибо
class TheClass implements TheInterface,Cloneable {
private Set<Integer> set;
public TheClass(){
set=new HashSet<Integer>();
}
public TheInterface copy() {
TheInterface clone = this.clone();
return clone;
}
protected A clone(){
A clone;
try
{
clone = (A) super.clone();
}
catch (CloneNotSupportedException e)
{
throw new Error();
}
return clone;
}
здесь я получаю ошибку несовместимых типов
public class Main {
public static void main(String[] args) {
TheClass class1 = new TheClass();
TheClass class2 = class1.copy();