Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Принудительно разобрать родительский тип на дочерний?

Автор вопроса: Luke VoОтветов: 1

У меня есть класс, который расширяет многие другие классы. Так что теперь я использую GenericPool для повторного использования предметов для повышения производительности. Но проблема в том, что я не могу создать дочерний класс, например:

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

(StarDustSprite расширяет класс Sprite, а функция getPoolItem() возвращает объект Sprite).

Так могу ли я принудительно разобрать его? Или мне нужно сделать 10 классов GenericPool, если у меня есть 10 дочерних классов?

Спасибо.

  • Осторожно: повторное использование объектов для повышения производительности может привести к ухудшению производительности! Stephen C 04.04.2011
  • Не могли бы вы объяснить, почему? Каждый раз, когда я создаю Sprite, я должен создавать Texture и TextureRegion, а также инициализировать Sprite (я имею в виду класс, который расширяет Sprite). Luke Vo 04.04.2011

androidjavacasting

Ответы

Ответ 1 · рейтинг 1 · aioobe

Могу ли я принудительно разобрать его?

Нет, вы не можете так бросить, по той же причине, по которой вы не можете бросить, например, Object в String.

Или мне нужно создать 10 классов GenericPool, если у меня есть 10 дочерних классов?

Полагаю, что так. Но я бы не решил это так, во-первых.

Если вы действительно хотите повторно использовать объекты, я предлагаю вам просто лениво инициализировать список объектов, который вы сможете использовать повторно.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы