我有一个projects包含以下文件的集合:
{
"_id" : ObjectId("589eff3fee3d13019843f55a"),
"name" : "Project A",
"desc" : "test",
"numofvms" : 0,
"templates" : [
{
"_id" : ObjectId("589e4c14ee3d131bac8b403c")
},
{
"_id" : ObjectId("589e4c1dee3d131bac8b403d")
}
],
"nodes" : [
{
"_id" : ObjectId("589eff8f2bb59057c3f9b89d"),
"name" : "Node A"
},
{
"_id" : ObjectId("589eff962bb59057c3f9b89e"),
"name" : "Node B"
},
{
"_id" : ObjectId("589eff982bb59057c3f9b89f"),
"name" : "Node C"
},
{
"_id" : ObjectId("589eff9a2bb59057c3f9b8a0"),
"name" : "Node D"
}
],
"links" : [ ]
}
Run Code Online (Sandbox Code Playgroud)
我尝试接收nodes给定文档(项目)的子文档(字段)数组,但没有根文档。结果应如下所示:
[ …Run Code Online (Sandbox Code Playgroud) 我像这样初始化 HashSet:
private HashSet<Rule> ruleTable = new HashSet<Rule>();
Run Code Online (Sandbox Code Playgroud)
我的对象(抽象类的子类)的equals()和hashCode()方法如下所示:TcpRuleRule
@Override
public int hashCode() {
// Ignore source Port for now
return (this.getSrcPool() + ":" + this.getDstPool() + ":" + this.getProtocol() + ":" + this.dstTcp).hashCode();
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof TcpRule))
return false;
if (obj == this)
return true;
TcpRule r = (TcpRule) obj;
return (this.getSrcPool().equals(r.getSrcPool()) && this.getDstPool().equals(r.getDstPool()) && this.getProtocol().equals(r.getProtocol()) && this.getSrcTcp() == r.getSrcTcp() && this.getDstTcp() == r.getDstTcp());
}
Run Code Online (Sandbox Code Playgroud)
我什至写了一个简单的单元测试,它没有给出任何错误: …
我尝试使用 DocumentBuilder 用 Java 编写一个简单的 XML 文件。我希望 XML 文件看起来像这样:
<outer>
<inner>
<element name="WEB"/>
<element name="WEB"/>
<element name="WEB"/>
</inner>
</outer>
Run Code Online (Sandbox Code Playgroud)
但它生成它是这样的:
<outer>
<inner>
<element name="WEB"/>
<element name="WEB"/>
<element name="WEB"/>
</inner>
</outer>
Run Code Online (Sandbox Code Playgroud)
为什么第三个元素与其他两个元素的缩进不同?注意:我再次读取 XML 文件以模拟项目中的一种方法,其中读取 XML 文件,添加一个元素并将其保存到 XML 文件。这是我的代码:
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.io.IOException;
public class main {
private static String FILEPATH = "/tmp/xmltest.xml";
private static DocumentBuilderFactory docFactory;
private static DocumentBuilder docBuilder;
private static TransformerFactory …Run Code Online (Sandbox Code Playgroud)