Hallo Leute,
kann mir einer erklären, wieso es hier zu einer javax.xml.bind.MarshalException kommt, die meint einen cycle entdeckt zu haben?
TimeOfDay-Class:
Ausgeführt wird:
Vielen Dank!
kann mir einer erklären, wieso es hier zu einer javax.xml.bind.MarshalException kommt, die meint einen cycle entdeckt zu haben?
TimeOfDay-Class:
Java:
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class TimeOfDay extends GregorianCalendar {
private static final long serialVersionUID = 1L;
private final GregorianCalendar timestamp;
public TimeOfDay() {
super();
timestamp = this;
set(YEAR, 2012);
set(MONTH, 0);
set(DAY_OF_MONTH, 1);
set(SECOND, 0);
set(MILLISECOND, 0);
}
public TimeOfDay(int hour, int minute) {
this();
setTime(hour, minute);
}
public GregorianCalendar getTimestamp() {
return timestamp;
}
public void setTimestamp(GregorianCalendar timestamp) {
setTime(timestamp.get(HOUR_OF_DAY), timestamp.get(MINUTE));
}
@Override
public TimeOfDay clone() {
return new TimeOfDay(getHour(), getMinute());
}
public void setTime(int hour, int minute) {
set(HOUR_OF_DAY, hour);
set(MINUTE, minute);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
SimpleDateFormat format = new SimpleDateFormat("kk:mm");
sb.append(format.format(getTime()));
sb.append(" Uhr");
return sb.toString();
}
public int getHour() {
return get(HOUR_OF_DAY);
}
public int getMinute() {
return get(MINUTE);
}
}
Ausgeführt wird:
Java:
public static void main(String[] args) {
TimeOfDay test = new TimeOfDay();
File testFile = new File("test.xml");
JAXBContext context;
try {
context = JAXBContext.newInstance(TimeOfDay.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
FileWriter writer = new FileWriter(testFile);
m.marshal(test, writer);
writer.close();
} catch (final JAXBException e) {
e.printStackTrace();
} catch (final IOException e) {
e.printStackTrace();
}
}
Vielen Dank!