我使用.jar反编译了jd-gui文件并检查了代码,发现它不同于原始的.java文件。


原始码

if ( total != 0 ) {
    result[ i ] = bdResult.multiply( bdItem ).divide( bdTotal, 0,
    RoundingMode.DOWN ).setScale( 0, RoundingMode.DOWN ).intValue();
}

反编译的代码

if (total == 0)
  continue;
result[i] = bdResult.multiply(bdItem).divide(bdTotal, 0,
RoundingMode.DOWN).setScale(0, RoundingMode.DOWN).intValue();



为什么会这样?

另外,反编译的代码在语法上似乎是错误的(大括号在哪里?)

最佳答案

仅通过不同的代码可以导致相同的Java字节代码语句,就不可能通过反编译来获得原始代码。但是,您获得的等效版本执行与原始版本完全相同的操作。

10-07 19:05
查看更多