Как вызвать метод с универсальным параметром самоссылающегося универсального интерфейса в JAVA?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как вызвать метод с универсальным параметром самоссылающегося универсального интерфейса в JAVA?

Сообщение Anonymous »

Если задан универсальный интерфейс, в котором общий интерфейс является ссылкой на сам этот универсальный интерфейс, и этот интерфейс имеет метод с параметром в качестве универсального типа. После реализации этого интерфейса с помощью конкретного класса:
Кажется, невозможно правильно вызвать общий метод. Отображается следующим образом:

Код: Выделить всё

public interface ISelfReferenceInterface
{
public void genericMethod(S obj);
}

public class SelfReferenceClass
implements ISelfReferenceInterface
{
public SelfReferenceClass()
{
super();
}

@Override
public void genericMethod(SelfReferenceClass obj)
{
System.out.println("This is generic method in" + getClass().getSimpleName());
}

}

public class App
{
public static void main(String[] args)
{
SelfReferenceClass argClass = new SelfReferenceClass();

ISelfReferenceInterface argInterface = new SelfReferenceClass();
// // ISelfReferenceInterface> argInterface = new SelfReferenceClass();
// ISelfReferenceInterface argInterface = new SelfReferenceClass();

ISelfReferenceInterface obj = new SelfReferenceClass();
// ISelfReferenceInterface> obj = new SelfReferenceClass();
// ISelfReferenceInterface obj = new SelfReferenceClass();

obj.genericMethod(argClass);            // #17 Only pass compile in this case.
obj.genericMethod(argInterface);        // #18 Always compile error.
}
}
Приведенный код является ЕДИНСТВЕННЫМ случаем, когда проход #17 компилируется, в другом случае #17 и #18 всегда компилируются с ошибкой.
Мой вопрос: есть ли способ заставить компилироваться проход #18?>

Подробнее здесь: https://stackoverflow.com/questions/798 ... ric-interf
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»