Кажется, невозможно правильно вызвать общий метод. Отображается следующим образом:
Код: Выделить всё
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.
}
}
Мой вопрос: есть ли способ заставить #18 пройти компиляцию?>
Подробнее здесь: https://stackoverflow.com/questions/798 ... ric-interf
Мобильная версия