将已知的超类对象(?)转换为未知的子类引用

时间:2017-01-19 04:17:13

标签: java class casting subclass superclass

Hello其他程序员,

我正在研究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 个答案:

答案 0 :(得分:0)

无需将广告投放到(SleevedShirt)

article = clothing;

应该足够了。