Java 不兼容的类型卡无法转换为字符串
不确定如何修复这个错误,我在代码中注释了错误的位置,对java来说非常陌生。我正在尝试将我的卡发送到构造函数中,并创建一个牌组数组Java 不兼容的类型卡无法转换为字符串,java,Java,不确定如何修复这个错误,我在代码中注释了错误的位置,对java来说非常陌生。我正在尝试将我的卡发送到构造函数中,并创建一个牌组数组 public abstract class CardGame { protected String[] deck = new String[52]; private String[] Suit = {"Spade","Dimond","Heart","Club"}; private String[] Card = {"2","3","4","
public abstract class CardGame {
protected String[] deck = new String[52];
private String[] Suit = {"Spade","Dimond","Heart","Club"};
private String[] Card = {"2","3","4","5","6","7","8","9","10","jack","queen","king","ace"};
public CardGame(){
int c = 0;
for (int x=0; x < Suit.length; ++x){
for (int i = 0; i < Card.length; ++i){
deck[c] = new Card(Suit[x], Card[i]); // heres the error
c++;
}
}
}
}
public class Card {
String suit;
String name;
public Card(String s,String n){
suit = s;
name = n;
}
public String getsuit(){
return suit;
}
public String getname(){
return name;
}
}
公共抽象类卡片游戏{
受保护字符串[]组=新字符串[52];
私人字符串[]套装={“黑桃”、“迪蒙”、“心脏”、“俱乐部”};
私人字符串[]卡={“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“杰克”、“女王”、“国王”、“王牌”};
公共纸牌游戏(){
int c=0;
对于(int x=0;x
问题出在这里:
protected String[] deck = new String[52];
你有一个数组,它将你的牌表示为类型字符串,如果你想将牌插入到该牌组中,你可能需要一个类型为Card的数组
要使您的问题行正常工作:
deck[c] = new Card(Suit[x], Card[i]);
您需要这样声明deck:
protected Card[] deck = new Card[52];
问题是:
protected String[] deck = new String[52];
你有一个数组,它将你的牌表示为类型字符串,如果你想将牌插入到该牌组中,你可能需要一个类型为Card的数组
要使您的问题行正常工作:
deck[c] = new Card(Suit[x], Card[i]);
您需要这样声明deck:
protected Card[] deck = new Card[52];
TYVM起作用了,所以我猜是用受保护的卡[]牌组=新卡[52];我创建了一个卡数据类型数组?oop非常混乱。@user3538292将您的数据结构(数组)视为只适合特定类型对象的容器,例如鸡蛋盒只能包含鸡蛋,或者保龄球袋只能包含保龄球。保龄球不属于,也不适合放在鸡蛋盒里。当您声明一个数据结构时,您还可以告诉Java编译器哪些内容属于它(特定类的典型对象或该类的子类对象)。你编写的代码越多,你就会越习惯这个想法。请记住:每件事都有一个特定的位置。TYVM起作用了,所以我猜是用受保护的卡[]牌组=新卡[52];我创建了一个卡数据类型数组?oop非常混乱。@user3538292将您的数据结构(数组)视为只适合特定类型对象的容器,例如鸡蛋盒只能包含鸡蛋,或者保龄球袋只能包含保龄球。保龄球不属于,也不适合放在鸡蛋盒里。当您声明一个数据结构时,您还可以告诉Java编译器哪些内容属于它(特定类的典型对象或该类的子类对象)。你编写的代码越多,你就会越习惯这个想法。只要记住:每件事都有一个特定的地方。