【问题标题】:Castor - MappingException Java class not constructableCastor - MappingException Java 类不可构造
【发布时间】:2015-05-12 17:20:27
【问题描述】:

使用 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

尝试在我的 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;
   }
}

XML 映射

<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>

【问题讨论】:

    标签: java castor


    【解决方案1】:

    已解决:我收到异常的原因是因为我需要将我的内部类设为静态,以便 Castor 能够使用它。

    网络上其他地方有很多帖子建议使用

    verify-constructable="false"
    

    但是内部类缺少静态是一个简单的错误。希望它可以帮助别人!

    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;
       }
    }
    

    http://castor.codehaus.org/1.2/how-to-map-an-inner-class.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 2021-03-12
      • 2021-05-08
      • 1970-01-01
      相关资源
      最近更新 更多