2016-05-03 29 views
0

我有这样的输出:消气返回相同的卡为对象

IN方法 - >套装:心等级:四

楼:心 - 四

IN方法 - >套装:钻石等级:ACE

住宅:钻石 - ACE(应该是心脏四)玩家:钻石 - ACE

我为wPlayer house设置最后一张卡后也发生了变化,但是在我的代码中看不到任何内容显示它正在更改。即使在调试中。

以下代码:

public class test{ 
    Card lastCard; 
    public test(){ 
     this.lastCard=null; 
    } 

    public void setLastCard(Card lcard){ 

     this.lastCard=lcard; 
    } 

    public Card getLastCard(){ 

     return this.lastCard; 
    } 

    static test hPlayer = new test(); 
    static test wPlayer = new test(); 

    public static Card generateCard(Random randoCard){ 
     Suit s = Suit.values()[randoCard.nextInt(Suit.values().length)]; 
     Rank r = Rank.values()[randoCard.nextInt(Rank.values().length)]; 
     System.out.println("IN METHOD--->Suit: "+s+" Rank: "+r); 
     return new Card(s,r); 
    } 

    public static void main(String[] args) throws InterruptedException { 
     Random randoCard = new Random(System.currentTimeMillis()); 

     hPlayer.setLastCard(generateCard(randoCard)); 
     System.out.println("House: " +hPlayer.getLastCard()); 
     TimeUnit.SECONDS.sleep(10); 

     wPlayer.setLastCard(generateCard(randoCard)); 
     System.out.println("House: " +hPlayer.getLastCard()+" Player: "+ wPlayer.getLastCard()); 

    } 
} 
+0

你能告诉我们'Card'类吗? 'Card#toString'打印什么? – SomeJavaGuy

+0

是卡片使用任何静态变量 – MadProgrammer

+0

这是我下面的卡类,帮助了我想要的字符串。谢谢你看这个。 – user2462320

回答

0

既然你没有提供卡类,我认为这是一个基本值类:

public class Card { 
    private final Suit suit; 
    private final Rank rank; 

    public Card(Suit suit, Rank rank) { 
     this.suit = suit; 
     this.rank = rank; 
    } 

    @Override 
    public String toString() { 
     return "Card [suit=" + suit + ", rank=" + rank + "]"; 
    } 
} 

运行你的代码,然后给我的输出:

IN METHOD--->Suit: SPADES Rank: FOUR 
House: Card [suit=SPADES, rank=FOUR] 
IN METHOD--->Suit: CLUBS Rank: THREE 
House: Card [suit=SPADES, rank=FOUR] Player: Card [suit=CLUBS, rank=THREE] 

因此,看起来你似乎有一个你在发布之前修复的错字(参考或者你的卡实现不是一个值类(它是否使用静态字段?)

+0

我很抱歉,我觉得睡着了。但是是的,这显然是我以前用过的toString方法。我用了你上面的那个。非常感谢您的帮助。 – user2462320

相关问题