Java: 如何在另一个 class 中使用一个的 toString() 方法?
Java: How to use the toString() method of one class in an other one?
我在学习 Java 的同时从事这个项目,我创建了一个 Card
class,它有一个 toString() 方法但是当我试图将 Card
对象转换为 Deck
class 中的字符串时,我收到 error.
Here is the Card class:
private final Rank cardRank;
private final Suit cardSuit;
public Card(Rank cardRank, Suit cardSuit){
this.cardRank = cardRank;
this.cardSuit = cardSuit;
}
public String toString(){
return "The " + cardRank + " of " + cardSuit;
}
Here is the Deck class:
private Card[] card = new Card[52];
public Deck(){
int i = 0;
for(Suit suit: Suit.values()){
for(Rank rank: Rank.values()){
card[i++] = (new Card(rank, suit));
}
}
}
public String toString(int i){
return card[i];
}
您不能将 Card
对象转换为 String
对象。
您可以通过toString()
方法获取Card
对象的String
表示。
像下面这样尝试
public String toString(int i){
return card[i].toString();
}
调用returncard[i]returns一个类型为card的对象。您必须实际调用 toString() 方法,以便您的 return 对象是字符串而不是卡片。希望这对您有所帮助!
如果你的每个 class 的 toString()
没有 @Override
注释,那么你必须显式调用 toString()
。
示例:
return card[i].toString();
return "The " + cardRank.toString() + " of " + cardSuit.toString;
如果像这样添加 @Override
注释:
@Override
public String toString(){
return "The " + cardRank.toString() + " of " + cardSuit.toString();
}
然后 Deck class toString(int i)
可以看起来像:
public String toString(int i){
return card[i];
}
如果将 @Override
添加到 Rank
和 Suit
class,则 Card
class toString()
可以看起来像:
public String toString(){
return "The " + cardRank + " of " + cardSuit;
}
我在学习 Java 的同时从事这个项目,我创建了一个 Card
class,它有一个 toString() 方法但是当我试图将 Card
对象转换为 Deck
class 中的字符串时,我收到 error.
Here is the Card class:
private final Rank cardRank;
private final Suit cardSuit;
public Card(Rank cardRank, Suit cardSuit){
this.cardRank = cardRank;
this.cardSuit = cardSuit;
}
public String toString(){
return "The " + cardRank + " of " + cardSuit;
}
Here is the Deck class:
private Card[] card = new Card[52];
public Deck(){
int i = 0;
for(Suit suit: Suit.values()){
for(Rank rank: Rank.values()){
card[i++] = (new Card(rank, suit));
}
}
}
public String toString(int i){
return card[i];
}
您不能将 Card
对象转换为 String
对象。
您可以通过toString()
方法获取Card
对象的String
表示。
像下面这样尝试
public String toString(int i){
return card[i].toString();
}
调用returncard[i]returns一个类型为card的对象。您必须实际调用 toString() 方法,以便您的 return 对象是字符串而不是卡片。希望这对您有所帮助!
如果你的每个 class 的 toString()
没有 @Override
注释,那么你必须显式调用 toString()
。
示例:
return card[i].toString();
return "The " + cardRank.toString() + " of " + cardSuit.toString;
如果像这样添加 @Override
注释:
@Override
public String toString(){
return "The " + cardRank.toString() + " of " + cardSuit.toString();
}
然后 Deck class toString(int i)
可以看起来像:
public String toString(int i){
return card[i];
}
如果将 @Override
添加到 Rank
和 Suit
class,则 Card
class toString()
可以看起来像:
public String toString(){
return "The " + cardRank + " of " + cardSuit;
}