0
아래 클래스에서 메서드 출력을 serialize하려면 싶습니다.java 및 simplexml 프레임 워크, 메서드 출력을 serialize하는 방법
@Root
public class Camera {
public enum Mode {
CONTINIOUS, TRIGGERED, DEACTIVATED;
}
@Element
private Mode currMode;
@Element
private int interval;
@Element
private int beforeEvent;
@Element
private int afterEvent;
@Element
private String savePath;
public Camera(Mode currMode, int interval, int beforeEvent, int afterEvent,
String savePath) {
super();
this.currMode = currMode;
this.interval = interval;
this.beforeEvent = beforeEvent;
this.afterEvent = afterEvent;
this.savePath = savePath;
}
@ElementList(entry = "mode", name = "availableModes")
public ArrayList<Mode> getAvailableModes() {
return new ArrayList<Mode>(Arrays.asList(Mode.values()));
}
}
방법은 목록으로 열거의 모든 가능성을 반환합니다. 기본 생성자가 설정되어 있지 않으면 직렬화가 성공적으로 완료됩니다.
<camera>
<savePath>/images</savePath>
<currMode>CONTINIOUS</currMode>
<beforeEvent>5000</beforeEvent>
<interval>3000</interval>
<afterEvent>10000</afterEvent>
<availableModes>
<mode>CONTINIOUS</mode>
<mode>TRIGGERED</mode>
<mode>DEACTIVATED</mode>
</availableModes>
</camera>
그러나 기본 생성자는 deserialization에 필요합니다. 기본 생성자를 설정하면 직렬화 및 비 직렬화 프로세스 중에 다음 오류가 발생합니다.
Default constructor can not accept read only @org.simpleframework.xml.ElementList(data=false, empty=true, entry=mode, inline=false, name=availableModes, required=false, type=void) on method 'availableModes' in class Camera
비 직렬화 중에는 anotated 메서드를 무시해야합니다. 직렬화 프로세스 중에 고려 될 요소를 정의 할 수 있습니까?이 요소는 직렬화 해제 프로세스 중에 무시됩니다.