2016-05-03 60 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

相關問題