Как вернуть реализацию обобщенного подкласса в JavaJAVA

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

Сообщение Anonymous »

У меня следующая структура:

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

    class Base{}
class Extension1 extends Base{}
class Extension2 extends Base{}
abstract class AbstractClazz{}
class Clazz1 extends AbstractClazz{}
class Clazz2 extends AbstractClazz{}

  AbstractClazz method(boolean returnClass1){
if (returnClass1){
return new Clazz1();
}
return new Class2();
}
Однако мой компилятор выдает ошибку: «Невозможно преобразовать из Clazz1 в AbstractClazz». Я не уверен, почему это происходит. Насколько я понимаю, Clazz1 и Clazz2 соответствуют требованиям экземпляра AbstractClazz, поскольку Clazz1 и Clazz2 являются реализациями AbstractClazz, где общий тип является подклассом Base, что и ожидает AbstractClazz.
Как мне это сделать? исправить это?
примечание: мой код написан с использованием Java 8.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ss-in-java

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