Java 向量表问题

Java 向量表问题,java,arrays,sorting,inheritance,vector,Java,Arrays,Sorting,Inheritance,Vector,我是一名软件工程专业的一年级学生,我在制作展示时遇到了一些麻烦。我给你简要介绍一下我的项目 我不知道是否有人熟悉这个游戏?这是一个基于获得更高奖杯和收集卡片的游戏。每个竞技场都会解锁新卡 我想做一个甲板建造工。您可以选择8张卡,我计算出elixer的平均成本。我想要一个功能,可以显示所有卡为您的奖杯范围 有了这些,让我来解释一下我的问题: 我制作了一个超类:卡,部队、法术、解除建造和被动建造扩展到这个超类上。之后,我创建了一个类:CardPool,在这里我为所有“卡片类”定义了所有对象 然后我做

我是一名软件工程专业的一年级学生,我在制作展示时遇到了一些麻烦。我给你简要介绍一下我的项目

我不知道是否有人熟悉这个游戏?这是一个基于获得更高奖杯和收集卡片的游戏。每个竞技场都会解锁新卡

我想做一个甲板建造工。您可以选择8张卡,我计算出elixer的平均成本。我想要一个功能,可以显示所有卡为您的奖杯范围

有了这些,让我来解释一下我的问题: 我制作了一个超类:卡,部队、法术、解除建造和被动建造扩展到这个超类上。之后,我创建了一个类:CardPool,在这里我为所有“卡片类”定义了所有对象

然后我做了一个类:竞技场,在我的主要部分,我宣布了所有竞技场。我正在努力解决的问题是,我不知道如何将所有的几张牌放在一个匹配竞技场的向量中。类似于卡牌1-2-3需要进入向量竞技场1,卡牌4-5-6需要进入向量竞技场2。只有我有4个不同的等级,都是卡片

因此,实际问题如下: 我如何制作竞技场1(或2,3,4)的矢量列表,并将2个部队、1个法术、1个解除建筑放入该矢量列表?最终,我们能够展示它们

我最后一次尝试的是投出这个类,正如你在我的CardPool类中看到的那样。那没用

注意:我把我的班级卡池做成一个界面只是为了尝试一下,在学校里听到了一些关于它的消息

超类:卡片

public class Card {
    private String name;
    private int elixer;

    public Card(String name, int elixer) {
        this.name = name;
        this.elixer = elixer;
    }
}

类别:部队(仅显示部队其他类别相同)

类:CardPoop(现在是接口,我只显示每个类的2个)

类别:竞技场

import java.util.ArrayList;

public class Arena {
    private String name;
    private int minTrophies;
    private int maxTrophies;

    private ArrayList<CardPool> cardList = new ArrayList<>();

    public ArrayList<CardPool> getCardList() {return cardList;}

    public Arena(String name, int minTrophies, int maxTrophies) {
        this.name = name;
        this.minTrophies = minTrophies;
        this.maxTrophies = maxTrophies;
    }
}

因此,现在我收到一条错误消息,我无法投出Cardpool

我该怎么办

我希望你们中的一些人能帮助我

Thx,
Pex

您要投的是
卡池
而不是
。您必须制作
实施
卡池

public class Card implements CardPool
部队
本身

public class Troop extends Card implements CardPool

要将其强制转换为卡池,您的问题可能会出现,因为卡不应为卡池类型

以“PEKKA”为例。这是一支队伍,它是卡牌的一个子类,与卡牌池无关(所以向卡牌池施法是胡说八道)。因此,您的CardPool可以作为一个基本类,为所有不同的卡提供预定义的、公共静态可访问的卡对象

然后,对于每个竞技场,你可以有一个ArrayList,它可以像现在一样充当你的卡片列表


另一个建议是,在Arena中添加一个“addCard(Card c)”方法比每次都必须使用“getCardList().add()”更好。

哇,这很管用,谢谢你,我怎样才能从Trainingcamp打印出矢量列表中的所有项目。@PexvanNieuwburg我很高兴。认为标记正确;像这里一样迭代,请编辑您的问题并包含您收到的错误消息的全文。
public class Main {

    public static void main(String[] args) {

        Arena trainingCamp = new Arena("Training Camp", 0, 0);

        trainingCamp.getCardList().add(CardPool.arrow);
        trainingCamp.getCardList().add(CardPool.minions);
        trainingCamp.getCardList().add(CardPool.archer);
        trainingCamp.getCardList().add(CardPool.knight);
        trainingCamp.getCardList().add(CardPool.fireBall);
        trainingCamp.getCardList().add(CardPool.miniPekka);
        trainingCamp.getCardList().add(CardPool.musketeer);
        trainingCamp.getCardList().add(CardPool.giant);
        trainingCamp.getCardList().add(CardPool.wallBreakers);
        trainingCamp.getCardList().add(CardPool.prince);
        trainingCamp.getCardList().add(CardPool.babyDragon);
        trainingCamp.getCardList().add(CardPool.skeletonArmy);
public class Card implements CardPool
public class Troop extends Card implements CardPool