2017-01-19 5 views
0

Здравствуйте товарищи программисты,Casting (?) Известный суперкласс объекта к неизвестному ссылки подкласса

Я работаю над проектом Java прямо сейчас, и я пытаюсь бросить известный суперкласс в неизвестном подкласса.

Вот код:

public void getShirtType(Person person) { 

    Clothing article; // Clothing is a superclass of different subclasses of Clothing 

    for(Clothing clothing : person.getClothing()) { // person.getClothing() returns List<Clothing> 

     if(clothing.hasSleeves()) { // hasSleeves() is boolean 

      article = ???; 
      break; 

     } 

    } 
} 

Этот код получает первый экземпляр предмета одежды с рукавами и затем завершает цикл.

Не знаю, что помещать в местах размещения вопросительных знаков. Обычно у меня может быть что-то вроде article = (SleevedShirt) clothing;, но помимо SleevedShirt есть разные подклассы, которые могут входить в круглые скобки.

Дайте мне знать, что вы думаете.

Кроме того, я в основном новичок, поэтому я бы не отказался от конструктивного крицизма, связанного с моим кодом, если вы были готовы его предложить.

+1

Как насчет 'article = clothing;', так как 'article' также является типом' Одежда'? Никакой бросок не нужен. – Andreas

+0

Это так просто? Хорошо, я попробую. Благодарю. –

ответ

0

Нет необходимости в броске к (SleevedShirt) как

article = clothing; 

должно хватить.

+0

Спасибо за информацию. –

Смежные вопросы