1
我也跟着上JAXB http://blog.adamsbros.org/2010/02/07/jaxb-example-code/下面的教程,并希望修改它,包括我想作为嵌套(内部)类的类如下:元帅内部类 - Java的
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.annotation.*;
import java.io.StringReader;
import java.io.StringWriter;
public class HighlevelClass
{
@XmlRootElement(name = "employee")
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee
{
@XmlAttribute
public int id;
@XmlElement
public
String firstName;
@XmlElement
public
String middleName;
@XmlElement
public
String lastName;
public Employee()
{
}
}
public static void main(String args[]) throws JAXBException
{
HighlevelClass HClass = new HighlevelClass();
Employee john = HClass.new Employee();
john.firstName = "John";
john.middleName = "Robert";
john.lastName = "Doe";
john.id = 1;
// write it out as XML
final JAXBContext jaxbContext = JAXBContext.newInstance(HighlevelClass.Employee.class);
}
但它的当我尝试创建JAXB上下文时,在最后一行给出了一个错误。我尝试了许多组合,但是我只在编写Employee类时才编译它。 有人可以帮我理解最新的错误。
谢谢。
谢谢AlexR。我几乎明白了原因。我现在的困惑是,如果我让Employee成为常规顶级类并从main()方法调用JAXBContext.newInstance(Employee.class),那么为什么它会工作?因为main()是静态的,所以它如何访问非静态成员?它为什么会在这种情况下工作,而不是在这种情况下?感谢您的帮助。 – madu