小编Alu*_*ard的帖子

Java iterator.hasNext()始终为true

我对代码有一点问题,如下所示.将iterator().hasNext()永远不会变成假的,因为next()函数总是返回相同的元素.它以无限循环结束.

我想在集合中的每个元素中设置属性UserLock(从中返回 GetElements()).如果元素的类型是"Package",我将使用lockAllElements函数的递归调用锁定包下的所有元素.

private void lockAllElements(String internalGUID) {
    Element tempElem = null;

    while((repo.GetPackageByGuid(internalGUID).GetElements().iterator().hasNext()) == true) {
        tempElem = repo.GetPackageByGuid(internalGUID).GetElements().iterator().next();

        if(tempElem.GetType().equals("Package")) {                
            this.lockAllElements(tempElem.GetElementGUID());
        }

        tempElem.ApplyUserLock(); 
    }
}
Run Code Online (Sandbox Code Playgroud)

java iterator while-loop

4
推荐指数
1
解决办法
2876
查看次数

将 XML 文件转换为字符串,无需在 Java 中进行操作或优化

我在使用用于处理 XML 文件的 JDOM2 时遇到了一些问题。\n我想将 XML 文件转换为字符串而不进行任何操作或优化。

\n\n

这就是我的 Java 代码:

\n\n
SAXBuilder builder = new SAXBuilder();\n    File xmlFile = f;\n\n    try \n    {\n        Document document = (Document) builder.build(xmlFile);\n\n        xml = new XMLOutputter().outputString(document);\n\n    } catch (Exception e) {\n        System.out.println(e.getMessage());\n    }\n\n    return xml;\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是当我将字符串与原始 XML 文件进行比较时,我注意到一些变化。

\n\n

原本的:

\n\n
<?xml version="1.0" encoding="windows-1252"?>\n<xmi:XMI xmi:version="2.1" xmlns:uml="http://schema.omg.org/spec/UML/2.0" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:thecustomprofile="http://www.sparxsystems.com/profiles/thecustomprofile/1.0" xmlns:SoaML="http://www.sparxsystems.com/profiles/SoaML/1.0">\n
Run Code Online (Sandbox Code Playgroud)\n\n

和字符串:

\n\n
<?xml version="1.0" encoding="UTF-8"?>\n<xmi:XMI xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:SoaML="http://www.sparxsystems.com/profiles/SoaML/1.0" xmlns:thecustomprofile="http://www.sparxsystems.com/profiles/thecustomprofile/1.0" xmlns:uml="http://schema.omg.org/spec/UML/2.0" xmi:version="2.1">\n
Run Code Online (Sandbox Code Playgroud)\n\n

所有变音符号(\xc3\xa4、\xc3\xb6、\xc3\xbc)也被更改。我会得到类似的东西:\'\xef\xbf\xbd\'而不是\'\xc3\xa4\'。

\n\n

有什么办法可以制止这种行为吗?

\n

java xml jdom-2

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

iterator ×1

jdom-2 ×1

while-loop ×1

xml ×1