У меня возникла проблема с интерфейсами в программе, которую я делаю. Я хочу создать интерфейс, который имеет один из его методов, получающий/возвращающий ссылку на тип собственного объекта. Это было что-то вроде:
public interface I {
? getSelf();
}
public class A implements I {
A getSelf() {
return this;
}
}
public class B implements I {
B getSelf() {
return this;
}
}
Я не могу использовать "I", где он "?", потому что я не хочу возвращать ссылку на интерфейс, но класс. Я искал и обнаружил, что в Java нет возможности "самостоятельно ссылаться", поэтому я не могу просто заменить это "?" в примере для ключевого слова "Я" или что-то вроде этого. Фактически, я подошел к решению, которое выглядит как
public interface I<SELF> {
SELF getSelf();
}
public class A implements I<A> {
A getSelf() {
return this;
}
}
public class B implements I<B> {
B getSelf() {
return this;
}
}
Но это действительно похоже на обходное решение или что-то подобное. Есть ли другой способ сделать это?