2
@XmlJavaTypeAdapter가 @XmlSeeAlso와 함께 작동하는 방법을 파악하는 데 문제가 있습니다. 나는 추상 클래스를 가지고 있고 나는 그것이 확장하는 클래스에 대한 클래스도 참조 지정 JAXB Java 유형 어댑터 사용 방법
@XmlSeeAlso({Position.class})
public abstract class Component implements Serializable {
...
그리고 이후
이 위치가 작동 내가 할 어댑터를 사용하여 노 인수 생성자가없는됩니다 :@XmlJavaTypeAdapter(PositionAdapter.class)
public class Position extends Component{
...
그러나 JAXB는 이것을 무시한 것처럼 보이며 "... arg-default 기본 생성자가 없습니다."오류가 발생합니다.
여기 내 어댑터는 다음과 같습니다
public class AdaptedPosition {
private double x;
private double y;
@XmlElement(name = "x")
public double getX(){
return x;
}
@XmlElement(name="y")
public double getY(){
return y;
}
public void setX(double x){
this.x = x;
}
public void setY(double y){
this.y = y;
}
}
public class PositionAdapter extends XmlAdapter<AdaptedPosition, Position>{
@Override
public AdaptedPosition marshal(Position position) throws Exception {
AdaptedPosition adaptedPosition = new AdaptedPosition();
adaptedPosition.setX(position.getX());
adaptedPosition.setY(position.getY());
return adaptedPosition;
}
@Override
public Position unmarshal(AdaptedPosition position) throws Exception {
return new Position(position.getX(), position.getY());
}
}
사람이 내가 잘못 무엇이 뒤에 이유 등을 알고 있나요?
감사합니다.