2012-12-04 76 views
0

我得到象這樣的錯誤:')' 預計,表達的非法啓動

Test. java:8 :')' expected 
Test. java: 8: error :illegal start of expression 
Test. java:9 :')' expected 
Test. java: 9: error :illegal start of expression 

8號線和9:

blackjackplayer = checkForBlackJacks(BlackJackHand playerhand); 
blackjackdealer = checkForBlackJacks(BlackJackHand dealerhand); 

類是:

public class Test{ 
     public void playround(){ 
       int temp = -1; 
       playerhand = new BlackJackHand(22); 
       dealerhand = new BlackJackHand(22); 
       addCards(playerhand, 2); 
       addCards(dealerhand, 2); 
       blackjackplayer = checkForBlackJacks(BlackJackHand playerhand); 
       blackjackdealer = checkForBlackJacks(BlackJackHand dealerhand); 
       while(temp!=2&&playerhand.gettotal()<=21){ 
        printHands(false, true, true); 
        temp = Prompt.getInt("\nPress 1 to hit, or 2 to stand. ", 1, 2); 
        if (temp==1&&playerhand.gettotal()<=21){ 
         addCards(playerhand,1); 
        } 
       } 
       if (playerhand.gettotal()>21){ 
        playerbust = true; 
       } 
       else{ 
        seeWhoWon(); 
       } 
        //done = true; 
     } 
     public boolean checkForBlackJacks (BlackJackHand x){ 
      return (x.gettotal()==21&&x.getmyhand().size()==2); 
     } 
    } 

這只是一個帶有錯誤部分的java文件。真正的程序包含所有組件。

回答

3

將值作爲方法參數傳遞時,只能包含對象的名稱,而不能包含其類型。

blackjackplayer = checkForBlackJacks(playerhand); 
blackjackdealer = checkForBlackJacks(dealerhand); 
+0

謝謝。忘記這一點我感覺很傻。 – GoldenLyfe

+0

聽起來像你需要一些睡眠然後;)無論如何,很高興有幫助。不要忘記標記答案已被接受。 – Vulcan

0

你不需要說這些行中的BlackJackHand playerHand。只有playerHand會做。

+1

不是「你不需要」,你*不能*。 –

+0

右鍵。感謝澄清=)。 – awolfe91

1

更改線路

blackjackplayer = checkForBlackJacks(playerhand); 
blackjackdealer = checkForBlackJacks(dealerhand); 

你只需要通過已經建立的對象名稱。無需使用類名稱。

1

這顯然是一個語法錯誤。一個方法調用看起來是這樣的:

blackjackplayer = checkForBlackJacks(playerhand); 

不是這個

blackjackplayer = checkForBlackJacks(BlackJackHand playerhand); 

如果你看一下錯誤信息的字符位置,它是最有可能在playerHand符號的位置.. 。它告訴你,它期望這個符號是一個')'。如果你不明白錯誤信息,通常可以幫助嘗試閱讀字面意義上的...