Имеются несколько объектов, которые нужно объединить в HashSet коллекцию и сохранить в XML файле и в дальнейшем их от туда извлечь
package laba2;
import javax.xml.bind.JAXBException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import static laba2.XMLworker.*;
public class Laba2 {
public static void main(String[]args){
FoodResidus fr1 = new FoodResidus();
fr1.name=someName1;
fr1.ID=0;
FoodResidus fr2 = new FoodResidus();
fr2.name=someName2;
fr2.ID=1;
FoodResidus fr3 = new FoodResidus();
fr3.name=someName3;
fr3.ID=2;
HashSet<FoodResidus> collection = new HashSet<>();
rubbishBin.add(fr1);
rubbishBin.add(fr2);
rubbishBin.add(fr3);
try {
saveCollection("some.xml",collection);
} catch (JAXBException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Для это создал класс с двумя соответсвующими методами
package laba2;
import javax.xml.bind.*;
import javax.xml.namespace.QName;
import java.io.*;
import java.util.ArrayList;
import java.util.HashSet;
public class XMLworker {
public static void saveCollection(String path, FoodResidus[] hs)throws JAXBException,IOException {
JAXBContext context = JAXBContext.newInstance(FoodResidus[].class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
JAXBElement<FoodResidus[]> jaxbElement = new JAXBElement<FoodResidus[]>(new QName("My_XML_Class"), FoodResidus[].class, hs);
File fileWrite = new File(path);
FileWriter fw = new FileWriter(fileWrite);
BufferedWriter bw = new BufferedWriter(fw);
marshaller.marshal(jaxbElement, bw);
}
public static HashSet getCollection(String path)throws JAXBException,IOException{
File fileRead = new File(path);
FileReader fr = new FileReader(fileRead);
BufferedReader br = new BufferedReader(fr);
HashSet returnedHS = JAXB.unmarshal(br, HashSet.class);
return returnedHS;
}
}
Смотрю в получившийся файл, а там это:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<My_XML_Class/>
Пробовал сохранять каждый объект отдельно, всё выходит корректно и с помощью метода getCollection() они прекрасно извлекаются. Что не так с коллекциями?
Вот класс FoodResidus
package laba2;
public class FoodResidus {
public String name = "someOfFoodresidus";
public Integer ID=666;
public boolean fliesAttraction=false;
public FoodResidus(){}
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Хочу уточнить вопрос про использование классов и библиотек написанных на java в языке scalaЧто необходимо сделать чтобы можно это сделать? Импортировать?...
Пытаюсь протестировать метод (пока хотя бы один, потом и все остальные) из класса UserDBDaoДля этого написал UserDBDaoTest:
ЗдравствуйтеМне необходимо узнать сколько памяти занимает мой объект, и я делаю это так: