强制解析从父类型到子类型?

时间:2011-04-04 11:34:03

标签: java android casting

我有一个类,有许多其他类扩展它。所以现在我使用GenericPool来回收物品以获得更好的性能。但问题是,我不能施放子类,例如:

StarDustSprite sprStarDust = (StarDustSprite) splStarDust[rndGenerator.nextInt(Parent.andStarDustR.length)].obtainPoolItem();

(StarDustSprite扩展了一个名为Sprite的类,而getsPoolItem()函数返回一个Sprite对象。)

我可以强制解析它吗?或者如果我有10个子类,我必须制作10个GenericPool类?

谢谢。

1 个答案:

答案 0 :(得分:1)

  

我可以强行解析吗?

不,你不能这样投,出于同样的原因你不能将Object投射到String

  

或者如果我有10个子课程,我必须制作10个GenericPool课程?

我想是的。但我首先不会这样解决它。

如果你真的想重用对象,我建议你懒得初始化一个对象列表,稍后你可以重用它们。