У меня есть класс под названием «Настройки», который имеет массив «UniverseOut».
private static final long serialVersionUID = 2929431155275389116L;
private String projectName = "last-project";
private UniverseOut[] universeOut = new UniverseOut[unicastLimit];
Когда я изменяю «projectName» в классе настроек с помощью команды, он меняет его и когда я сохраняю проект и перезагружаю приложение, оно безошибочно читает имя.
Но массив UniverseOut вообще не сохраняется, он просто говорит, что массив принадлежит к этому типу, но сам объект / значения не сохраняются.
public class UniverseOut implements Serializable {
/**
*
*/
private static final long serialVersionUID = -1326425548448853224L;
private static final int max_ip = 10;
private static String[] ip = new String[max_ip];
}
И вот код как я сохраняю объекты как XML Файлы:
String path = System.getProperty("user.dir");
FileOutputStream fos = new FileOutputStream(path + "\\" + projectname + ".project");
XMLEncoder xml = new XMLEncoder(fos);
xml.setExceptionListener(new ExceptionListener() {
public void exceptionThrown(Exception e) {
System.out.println("Exception! :" + e.toString());
}
});
xml.writeObject(getSettings());
xml.close();
fos.close();
fos = new FileOutputStream(path + "\\last-project.project");
xml = new XMLEncoder(fos);
xml.writeObject(getSettings());
xml.close();
fos.close();
Файл создается и выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<java version="13.0.2" class="java.beans.XMLDecoder">
<object class="preferences.Settings" id="Settings0">
<void property="projectName">
<string>lol</string>
</void>
<void property="universeOut">
<void index="0">
<object class="preferences.UniverseOut"/>
</void>
<void index="1">
<object class="preferences.UniverseOut"/>
</void>
</void>
</object>
</java>
И я совершенно уверен, что этот массив должен содержать некоторые вещи, но оно не сохранено.