2012-12-04 27 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符号的位置.. 。它告诉你,它期望这个符号是一个')'。如果你不明白错误信息,通常可以帮助尝试阅读字面意义上的...