如何获取JAVA类的最后一个列表
我正在尝试创建一个具有ArrayList的类。 例如:如何获取JAVA类的最后一个列表,java,xml,jaxb,xsd,Java,Xml,Jaxb,Xsd,我正在尝试创建一个具有ArrayList的类。 例如: public class SubCategory { protected String nameOfCategory; @XmlElement(required = true) protected String link; @XmlElementRef protected List<SubCategory> supCategory;... } 公共类子类别{ 类别的受保护字符串名称; @
public class SubCategory {
protected String nameOfCategory;
@XmlElement(required = true)
protected String link;
@XmlElementRef
protected List<SubCategory> supCategory;...
}
公共类子类别{
类别的受保护字符串名称;
@XmlElement(必需=true)
受保护的字符串链接;
@xmlementref
受保护的列表类别;。。。
}
如何获取子类别的最后列表?我使用JAXB for xml文件,xsd文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/CategoriesTree" xmlns="http://www.example.org/CategoriesTree"
elementFormDefault="qualified">
<xs:element name="Categories">
<xs:complexType>
<xs:sequence>
<xs:element name="mainCategory" type="subCategory" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="subCategory">
<xs:sequence>
<xs:element name="nameOfCategory" type="xs:string"/>
<xs:element name="link" type="xs:string"/>
<xs:element name="subCategory" type="subCategory" maxOccurs="unbounded"
minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
是的,我有这个方法,但我必须转到树中的最后一个元素,例如: 如何获取最后一个元素
<code>
<subCategory>
<nameOfCategory>Ordnungsmittel / Ablagemittel</nameOfCategory>
<link>link=Ordnungsmittel / Ablagemittel</link>
<subCategory>
<nameOfCategory>Ordnungsmittel / Ablagemittel</nameOfCategory>
<link>link=Ordnungsmittel / Ablagemittel</link>
<subCategory>
<nameOfCategory>Last</nameOfCategory>
<link>link=Last</link>
</subCategory>
</subCategory>
</subCategory>
</code>
奥德努格米特尔/阿布拉吉米特尔
link=ORDNUGSMITEL/Ablagemittel
奥德努格米特尔/阿布拉吉米特尔
link=ORDNUGSMITEL/Ablagemittel
最后
链接=最后一个
我真的不确定你想要完成什么。我从我的一个项目中获取了一个生成的类,并在Java类中创建了一个列表,该列表的定义与您在XSD中发布的类似:
@XmlElement(required = true)
protected List<Manager> manager;
public List<Manager> getManager() {
if (manager == null) {
manager = new ArrayList<Manager>();
}
return this.manager;
}
@xmlement(必需=true)
受保护列表管理器;
公共列表管理器(){
if(manager==null){
manager=newarraylist();
}
把这个还给经理;
}
如果要向列表中添加内容,还必须使用get方法来获取引用
如何获取子类别的最后列表
由于您有一个树,其中每个节点都是相同类型的(
子类别
),因此您可以编写一个递归函数,将子类别
的实例作为参数向下导航到最后一个叶并返回int。没有“最后一个列表”,因为在同一级别上可能有多个元素!
要检索上一个标记的循环,您需要一个递归循环,或者您可以对它进行更好的建模 好的,我做完了:)谢谢你的回复
public void showTree(List<SubCategory> child){
for(int i=child.size()-1; i>=0; i--){
if(!child.get(i).getSupCategory().isEmpty()){
System.out.println(child.get(i).getNameOfCategory());
showTree(child.get(i).getSupCategory());
}
else{
System.out.println(child.get(i).getNameOfCategory());
//child.remove(i);
}
}
public void showTree(列出子项){
对于(int i=child.size()-1;i>=0;i--){
如果(!child.get(i).getSupCategory().isEmpty()){
System.out.println(child.get(i.getNameOfCategory());
showTree(child.get(i.getSupCategory());
}
否则{
System.out.println(child.get(i.getNameOfCategory());
//儿童。移除(i);
}
}
“如何获取子类别的最后一个列表?”-我不知道你在问什么。请重新表述问题,以便我们能够理解。我认为OP是在问他是否可以在类中创建一个列表,将该类本身作为泛型(如果有意义的话)包含在内是的,但是我担心内存,我必须使用迭代,而递归将更困难