Castor-MappingException Java类不可构造
使用Castor 1.3,在测试时收到以下异常:Castor-MappingException Java类不可构造,java,castor,Java,Castor,使用Castor 1.3,在测试时收到以下异常: org.exolab.castor.mapping.MappingException: The Java class com.company.sales.app.valueobjects.eai.ContactInformationValueObject$CommunicationPreference is not constructable -- it does not contain a default public constructor
org.exolab.castor.mapping.MappingException: The Java class com.company.sales.app.valueobjects.eai.ContactInformationValueObject$CommunicationPreference is not constructable -- it does not contain a default public constructor
试图在Java代码中使用公共内部类的集合
课堂示例:
public class Car {
public String color;
public String make;
public String model;
public List<RoadTrip> roadTrips;
public class RoadTrip {
public String pointA;
public String pointB;
}
}
<class name="com.auto.Car" >
<field name="color" type="java.lang.String"><bind-xml name="COLOR" /></field>
<field name="make" type="java.lang.String"><bind-xml name="MAKE" /></field>
<field name="model" type="java.lang.String"><bind-xml name="MODEL" /></field>
<field name="roadTrips" type="com.auto.Car$RoadTrip"><bind-xml name="TRIP" /></field>
</class>
<class name="com.auto.Car$RoadTrip">
<field name="pointA" type="java.lang.String"><bind-xml name="STARTING_POINT" /></field>
<field name="pointB" type="java.lang.String"><bind-xml name="DESTINATION" /></field>
</class>
公车{
公共字符串颜色;
公共字符串制作;
公共字符串模型;
公共名单路途旅行;
公务舱旅行{
公共字符串点A;
公共字符串点B;
}
}
XML映射:
public class Car {
public String color;
public String make;
public String model;
public List<RoadTrip> roadTrips;
public class RoadTrip {
public String pointA;
public String pointB;
}
}
<class name="com.auto.Car" >
<field name="color" type="java.lang.String"><bind-xml name="COLOR" /></field>
<field name="make" type="java.lang.String"><bind-xml name="MAKE" /></field>
<field name="model" type="java.lang.String"><bind-xml name="MODEL" /></field>
<field name="roadTrips" type="com.auto.Car$RoadTrip"><bind-xml name="TRIP" /></field>
</class>
<class name="com.auto.Car$RoadTrip">
<field name="pointA" type="java.lang.String"><bind-xml name="STARTING_POINT" /></field>
<field name="pointB" type="java.lang.String"><bind-xml name="DESTINATION" /></field>
</class>
XML示例
<AUTOMOBILE>
<COLOR>LITTLE RED</COLOR>
<MAKE>CHEVROLET</MAKE>
<MODEL>CORVETTE</MODEL>
<TRIP>
<STARTING_POINT>DALLAS</STARTING_POINT>
<DESTINATION>VEGAS</DESTINATION>
</TRIP>
<TRIP>
<STARTING_POINT>SEATTLE</STARTING_POINT>
<DESTINATION>PORTLAND</DESTINATION>
</TRIP>
</AUTOMOBILE>
小红
雪佛兰
克尔维特
达拉斯
维加斯
西雅图
波特兰
已解决:我得到异常的原因是我需要将内部类设置为静态,以便Castor能够处理它
网络上其他地方有不少帖子建议使用
verify-constructable="false"
但是在内部类上缺少static是一个简单的错误。希望它能帮助别人
public class Car {
public String color;
public String make;
public String model;
public List<RoadTrip> roadTrips;
public static class RoadTrip {
public String pointA;
public String pointB;
}
}
公车{
公共字符串颜色;
公共字符串制作;
公共字符串模型;
公共名单路途旅行;
公共静态级公路旅行{
公共字符串点A;
公共字符串点B;
}
}