2012-03-15 132 views
-1

如何修复此声明?无效FormalParameterList,令牌上的语法错误“。”,{预计在此令牌之后

System.out.printf(" 1  | %d  | %d | %d\n" , 
        Simulator.simulate(2, 1, 0.71, 15, 1200), 
        Simulator.simulate(5, 1, 0.71, 15, 1200), 
        Simulator.simulate(10, 1, 0.71, 15, 1200)  
       ); 

Syntax error on token ".", { expected after this token [. in Simulator.simulate] 

Syntax error on token "" 1  | %d  | %d | %d\n"", invalid FormalParameterList 
+1

编译时错误?这个原因可能在这个陈述之外。也许你在某个地方错过了一个'{'或'}'。 – 2012-03-15 18:36:44

+0

你在其他地方有一个语法错误,因为这是你如何调用'printf()' – 2012-03-15 18:39:01

+0

仔细检查该语句是(1)在方法内,(2)在构造函数内或(3) )在一个静态初始化器中。类似的错误表明某些语句是在一种方法之外编写的... – 2012-03-15 18:42:30

回答

0

以下代码创建完全相同的误差(和更多一些)

public class Analyzer { 
    System.out.printf(" 1  | %d  | %d | %d\n" , 
       Simulator.simulate(2, 1, 0.71, 15, 1200), 
       Simulator.simulate(5, 1, 0.71, 15, 1200), 
       Simulator.simulate(10, 1, 0.71, 15, 1200)  
      ); 
} 

方法调用System.out.printf不允许在类体内。将其移动到方法,构造函数或静态初始化程序中:

public class Analyzer { 
    static { 
    System.out.printf(" 1  | %d  | %d | %d\n" , 
       Simulator.simulate(2, 1, 0.71, 15, 1200), 
       Simulator.simulate(5, 1, 0.71, 15, 1200), 
       Simulator.simulate(10, 1, 0.71, 15, 1200)  
      ); 
    } 
}