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