【发布时间】:2021-10-19 23:49:00
【问题描述】:
我有一个示例 XML,想要创建对象并将它们存储在列表中。 XML 包含以下内容:
<students>
<student>
<firstName>A</firstName>
<id>1</id>
<lastName>C</lastName>
<company>BCD</company>
</student>
<student>
<firstName>B</firstName>
<id>2</id>
<lastName>C</lastName>
<company>EFG</company>
</student>
</students>
我创建类 学生.java
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import lombok.Data;
@Data
@XmlRootElement
public class Student {
private long Id;
private String firstName;
private String lastName;
private String company;
}
还有Students.java
import javax.xml.bind.annotation.XmlRootElement;
import lombok.Data;
@Data
@XmlRootElement
public class Students {
private Student student;
}
当然还有主程序:ParsingXML.java
List<Students> listOfStudentsType= new ArrayList<Students>();
try {
File xmlFile = new File("Student.xml");
JAXBContext jaxbContext;
jaxbContext = JAXBContext.newInstance(Students.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Students employee = (Students) jaxbUnmarshaller.unmarshal(xmlFile);
listOfStudentsType.add(employee);
}
catch (JAXBException e)
{
e.printStackTrace();
}
ListIterator<Students> litr = listOfStudentsType.listIterator();
//System.out.println(listOfStudentsType.size());
//System.out.println("\n Using list iterator");
while(litr.hasNext()){
System.out.println(litr.next());
}
我想将对象存储在内部列表中。 我希望它有 2 个 id 1 和 2 的条目。
但是我得到以下输出
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector (file:/C:/Users/R.Premsagar/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.0-b170127.1453/jaxb-runtime-2.3.0-b170127.1453.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Students(student=Student(Id=2, firstName=B, lastName=C, company=EFG))
此处仅显示第二个条目。我相信它正在被覆盖。任何人都可以为我提供一些见解以同时具有这两种价值观,请
【问题讨论】:
-
我不知道这项技术,但在逻辑上不应该是
private List<Student> students;inStudent? -
我已经尝试过了,但是给出了一个意外的元素异常
-
直到有人过来知道这一点,THIS 可能会有所帮助
标签: java xml-parsing jaxb lombok