В XML-файле из сериализованного класса отсутствуют данные поля - PullRequest
1 голос
/ 17 февраля 2012

У меня есть некоторые классы, которые действуют как INI-файлы, и они работают. Я только что написал новый класс, который сериализует, но XML-файл не имеет полей данных - это просто оболочка. Что я сделал не так? Я использую Eclipse и Ubuntu 11.10. Класс:

public final class ProsilicaCamInit extends SerialXMLIO {
public boolean isMaster;
public boolean isSlave;
public int filter;
public int exposureTime;

public ProsilicaCamInit() {
}
public void setDefaultValues() {
    isMaster = false;
    isSlave = false;
    filter = 0;
    exposureTime = 5000;
}


public boolean getIsMaster() {
    return isMaster;
}

public void setIsMaster(boolean isMaster) {
    this.isMaster = isMaster;
}

public boolean getIsSlave() {
    return isSlave;
}

public void setIsSlave(boolean isSlave) {
    this.isSlave = isSlave;
}

public int getFilter() {
    return filter;
}

public void setFilter(int filter) {
    this.filter = filter;
}

public int getExposureTime() {
    return exposureTime;
}

public void setExposureTime(int exposureTime) {
    this.exposureTime = exposureTime;
}

}

Я использовал здесь

ProsilicaCamInit pci = new ProsilicaCamInit();
pci.setDefaultValues();
pci.serialize(pathName);

Я проверил, установлены ли значения по умолчанию, и вот XML-файл, который имеет только одно из полей.

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0_23" class="java.beans.XMLDecoder">
 <object class="fireScience.airborne.io.ProsilicaCamInit">
  <void property="exposureTime">
   <int>5000</int>
  </void>
 </object>
</java>

1 Ответ

1 голос
/ 18 февраля 2012

Я думаю, что другие значения не нужно хранить, потому что false - это значение по умолчанию для логического значения, а ноль - по умолчанию для int.

...