Ошибка: (19, 21) Java: несовместимые типы: java.lang.Объект невозможно преобразовать в элемент.JAVA

Программисты JAVA общаются здесь
Anonymous
Ошибка: (19, 21) Java: несовместимые типы: java.lang.Объект невозможно преобразовать в элемент.

Сообщение Anonymous »

Я пишу программу, использующую Jaxb, для преобразования XML-файла в Java-объект. Однако в моем основном классе я расширяю свой класс элементов до класса элементов, чтобы получить доступ к хранящимся там данным, но он говорит мне, что ему нужен объект, и вместо этого он получил элемент. Я немного в замешательстве. Когда я создаю файл, я получаю сообщение об ошибке в заголовке.
Вот мой основной класс — я получаю ошибку в цикле for для элемента
import java.io.*;
import java.util.List;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

public class main {
public static void main(String[] args) throws IOException, JAXBException {
File file = new File("items.xml");

JAXBContext context = JAXBContext.newInstance(items.class);
Unmarshaller un = context.createUnmarshaller();
items itemData = (items) un.unmarshal(file);

List items = itemData.getitem();

for(item e: items){
System.out.println("DataType : "+e.getDataType());
System.out.println("Name : "+e.getName());
System.out.println("Data : "+e.getData());
System.out.println("Group : "+e.getGroup());
System.out.println("--------------------------");
}
}
}

Вот мой класс элемента
import javax.xml.bind.annotation.XmlElement;

public class item {
private String dataType;
private String name;
private int data;
private String group;

@XmlElement
public String getDataType(){
return dataType;
}
public void setDataType(String dataType){
this.dataType = dataType;
}

@XmlElement
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}

@XmlElement
public int getData(){
return data;
}
public void setData(int data){
this.data = data;
}

@XmlElement
public String getGroup(){
return group;
}
public void setGroup(String group){
this.group = group;
}
}

Вот мой класс элементов
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "items")
public class items {
private List item;

@XmlElement(name = "item")
public List getItem(){
return item;
}

public void setItem(List itemList){
this.item = itemList;
}
}

Вот мой XML-файл

Number
Harry Potter 1
5
Movie


Number
Harry Potter 2
6
Movies


Number
Harry Potter 3
7
Books


Number
Harry Potter 4
8
Books




Вернуться в «JAVA»