Рекурсивный вызов из-за динамического приведения классов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
Ответить

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

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

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

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

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