0

我有 2 个类:A 和 Test,它们在不同的 .java 文件中定义。将 Test 类作为 A 类型的字段。现在我需要能够编组/解组这两个类,因此我需要将 XMLRootElement 放入这两个类。可能吗?或者我需要一些包装吗?Coudl 在谷歌中找不到任何东西。

问候,杰夫

4

1 回答 1

0

这当然是可能的,您不需要任何类型的包装器。这是一个例子:

ItemA.java

package answer;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "ItemA")
@XmlAccessorType(value = XmlAccessType.FIELD)
public class ItemA {

    private ItemB One = new ItemB();
    private ItemB Two = new ItemB();

}

ItemB.java

package answer;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "ItemB")
@XmlAccessorType(value = XmlAccessType.FIELD)
public class ItemB {

    private int One = 1;
    private int Two = 2;
}

证明这行得通

package answer;

import javax.xml.bind.JAXB;
import java.io.StringWriter;

public class Test {

    public static void main(String[] args) {
        ItemA itemA = new ItemA();
        ItemB itemB = new ItemB();

        StringWriter sw1 = new StringWriter();
        JAXB.marshal(itemA, sw1);
        System.out.println(sw1.toString());

        StringWriter sw2 = new StringWriter();
        JAXB.marshal(itemB, sw2);
        System.out.println(sw2.toString());

    }

}
于 2015-07-26T21:39:37.720 回答