第一个片段来自我编写的Java类,第二个片段来自包含该类的反编译的jar文件。
我注意到的是,后期增量现在是前置增量,这可能会影响我的功能。
if (uiType.equals("structure")) {
NodeList images = doc.getElementsByTagName("img");
for (int i = 0; i < images.getLength(); i++) {
Node img = images.item(i);
Element imgEle = (Element) img;
String srcUrl = imgEle.getAttribute("src");
if (srcUrl.startsWith("image")) {
srcUrl = appUrl+"/common/"+srcUrl;
}else {
continue;
}
imgEle.setAttribute("src", srcUrl);
}
if (str5.equals("structure"))
{
Object localObject3;
Object localObject5;
Object localObject7;
Object localObject9;
localObject1 = localDocument.getElementsByTagName("img");
for (int i = 0; i < ((NodeList)localObject1).getLength(); ++i) {
Node localNode = ((NodeList)localObject1).item(i);
localObject3 = (Element)localNode;
localObject5 = ((Element)localObject3).getAttribute("src");
if (((String)localObject5).startsWith("image")) {
localObject5 = str6 + "/common/" + ((String)localObject5);
((Element)localObject3).setAttribute("src", (String)localObject5);
}
}
}
最佳答案
它不会影响您的程序,因为增量是“本身”。这两个表达式之间的唯一区别是i
的值,如同一条语句中的其他表达式所见;由于没有其他表达式(整个语句只是增量,i++
),因此在您可以看到的地方,前后的外观相同。
您看到这的原因是++i
效率更高,因为它不需要记住i
的旧值。这是一个非常简单的编译器优化,是javac实际执行的少数几个优化之一(大多数优化在运行时由HotSpot完成)。
通常,您可以相信javac不会破坏您的程序。它是一个经过充分测试的编译器,如果它破坏了for
循环这样的基本内容,那将是非常令人惊讶的。
关于java - 后增量变为jar中的预增量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30619984/