gpt4 book ai didi

java - 后增量成为 jar 中的前增量

转载 作者:行者123 更新时间:2023-12-04 01:44:22 25 4
gpt4 key购买 nike

第一个片段来 self 编写的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com