Java中ArrayList之间的转换


问题内容

抱歉,我认为这是一个继承问题:一直以来都是ArrayList问题!

好的,我的问题比我想象的要具体。所以我有两个家庭班。卡和区域。区域是用于存放卡片的盒子。

Zone,ZoneList和ZoneMap的前两个子类是存储卡的两种不同方式。诸如Hand和PokerHand之类的其他子类具有处理其存储卡的特定方式。

复杂的地方是Card还具有子类,例如PokerCard,而ZoneList和ZoneMap的子类用于组织这些子类。

所以protected ArrayList<Card> cardBox;我希望在ZoneList和PokerHand中都能声明,cardBox = new ArrayList<PokerCard>();因为PokerCard是一张卡片。我得到的错误是,当涉及到ArrayLists时,我显然无法在Card和GangCard之间进行转换。因此,我试图通过仅private ArrayList<PokerCard> cardBox;在CardHand内部重新声明cardBox来解决此问题,但是这导致了隐藏问题我的程序。

真的,问题是关于ArrayLists之间的转换?Java告诉我我做不到,那么关于我如何做的任何想法?

z。


问题答案:

如果我对您的理解正确,则可能应该声明:

public class ZoneList<T extends Card> {
   protected List<T> cardBox;
}

public class PokerHand extends ZoneList<PokerCard> {
   public PokerHand() {
      cardBox = new ArrayList<PokerCard>();
   }
}