这段代码有什么问题?考虑构建一个包含所有建筑物的 ArrayList,而 Building 是 Farm 和 StoneMine 的超类:
public Building returnBuilding(int i)
{
if(buildings.get(i) instanceof Farm)
return (Farm)buildings.get(i);
if(buildings.get(i) instanceof StoneMine)
return (StoneMine)buildings.get(i);
else
return null;
}
那么如果我打电话
returnBuilding(1).SOMEMETHODEJUSTINFARMCLASS();
这building.get(1)
是 Farm 类的一个实例,我得到一个运行时错误