Рекурсивный вызов из-за динамического приведения классовJAVA

Программисты JAVA общаются здесь
Anonymous
Рекурсивный вызов из-за динамического приведения классов

Сообщение Anonymous »

У меня есть интерфейс Commodity, который является супертипом перечислений Item и Consumable.

Кроме того, существует класс Option с конструкторами, принимающими каждый из них с помощью int:

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

class Option{
Option(Item c,int price){. . .}
Option(Consumable c,int price){. . .}
Option(Commodity c,int price){
this(c.getClass()!=Commodity.class?c.getClass().cast(c):Item.EMPTY,price);
}
}
}
Третий конструктор должен определить тип переданного товара и вызвать один из других конструкторов с правильным типом.
Компилятор сообщает Мне кажется, что это приведет к бесконечной рекурсии, и я не могу понять, почему.

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

Recursive constructor invocation Option(Commodity, int)
Что не так с моим кодом?

Подробнее здесь: https://stackoverflow.com/questions/772 ... class-cast

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