我正在尝试制作一个名为 Elevens 的简化版纸牌。我成功制作了 Card
类,但在创建 Deck
类时遇到了问题。目标是创建一个具有独特卡片的套牌。很抱歉,如果这个解释不是最好的,但希望代码示例会有所帮助:
Card 类的构造函数:
package ElevensLab;
public class Card {
private String suit;
private String rank;
private int pointValue;
public Card(String cardRank, String cardSuit, int cardPointValue) {
rank=cardRank;
suit=cardSuit;
pointValue=cardPointValue;
}
Deck 类构造函数:
package ElevensLab;
import java.util.List;
import java.util.ArrayList;
public class Deck {
private List<Card> cards;
private int size;
public Deck(String[] suits, String[] ranks, int[] values){
ArrayList<Card> cards=new ArrayList<Card>();
for(String suit: suits){
for(String rank: ranks){
for(int value: values){
cards.add(suit);
}
}
}
size=cards.size();
}
最佳答案
好的,开始了:
因此,您正在制作 Card
的 ArrayList
。要向那个 ArrayList
添加一个项目,它必须是 Card
类型,对吗?因此,在 Deck
类 cards.add(suit)
的行中,您正在将 String
添加到 ArrayList
属于 Card
类型。我假设这会给你一个编译器错误。相反,我要做的是在 cards.add()
调用中放置一个 Card
构造函数。我将使用您的代码向您展示:
package ElevensLab;
import java.util.List;
import java.util.ArrayList;
public class Deck {
private List<Card> cards;
private int size;
public Deck(String[] suits, String[] ranks, int[] values){
ArrayList<Card> cards=new ArrayList<Card>();
for(String suit: suits){
for(String rank: ranks){
for(int value: values){
cards.add(new Card(rank, suit, value)); //This is the line I changed
}
}
}
size=cards.size();
}
此代码将一个新的 Card
添加到具有所需值的 Deck
中。我希望这对您有所帮助,祝您好运!
关于java - 使用来自另一个类的变量在构造函数中创建数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43724235/