【发布时间】:2016-02-09 17:13:49
【问题描述】:
import java.util.ArrayList;
public class Card {
int number;
String suit;
public Card(int number, String suit) {
this.number = number;
this.suit = suit;
}
public static void main(String[] args) {
String[] suit = {
"Clubs",
"Diamonds",
"Spades",
"Hearts"
};
ArrayList<Card> deckOfCards = new ArrayList<Card>(52);
for (int j = 0; j < 4; j++) {
for (int i = 0; i < 13; i++) {
deckOfCards.add(i+1, suit[j]);
}
}
System.out.println(deckOfCards);
}
}
我是方法的新手,我们需要创建一副卡片,其中卡片是方法而不是字符串或 int 等(假设方法卡片是卡片)。不是 100% 确定我做错了什么,但我不断收到错误:
Card.java:27: error: no suitable method found for add(int,String)
deckOfCards.add(i+1, suit[j]);
^
method List.add(int,Card) is not applicable
(argument mismatch; String cannot be converted to Card)
method AbstractList.add(int,Card) is not applicable
(argument mismatch; String cannot be converted to Card)
method ArrayList.add(int,Card) is not applicable
(argument mismatch; String cannot be converted to Card)
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error
Michaels-MacBook-Air-2:Computer Science michaelzakariaie$
非常感谢任何提示/帮助,我很确定这是一个简单的错误,我只是空白
编辑:想办法在添加卡时更改语法,但运行时输出乱码,有人知道如何解决吗?
import java.util.ArrayList;
public class Card {
int number;
String suit;
public Card(int number, String suit) {
this.number = number;
this.suit = suit;
}
public static void main(String[] args) {
String[] suit = {
"Clubs",
"Diamonds",
"Spades",
"Hearts"
};
ArrayList<Card> deckOfCards = new ArrayList<Card>(52);
for (int j = 0; j < 4; j++) {
for (int i = 0; i < 13; i++) {
deckOfCards.add(new Card (i+1, suit[j]));
}
}
// deckOfCards.add(new Card (1, "hi"));
System.out.println(deckOfCards);
}
}
新代码^
谢谢
【问题讨论】:
-
正如错误告诉您的那样,您正试图在 Card 对象的 ArrayList 中插入一个 String 对象。