在Java程序中,假设存在一个方法`calculate(int x, boolean flag)`,其中`x`为整型参数,`flag`为布尔型参数。以下哪种方法调用方式会导致编译时错误?
答案解析
A选项 `calculate(10, true);` 符合方法签名,传递了一个整型值和一个布尔值,正确。B选项`calculate(5, 1==1);`中`1==1`的结果为布尔值`true`,符合方法签名,正确。C选项`calculate(0, (1>2)?true:false);`中三元运算符`(1>2)?true:false`的结果为布尔值`false`,符合方法签名,正确。D选项`calculate(2, 0);`中第二个参数传递的是整型值`0`,与方法签名中的布尔型参数类型不匹配,会导致编译错误。Java中布尔类型和整型之间不能相互转换。
正确答案:D