注解+反射+递归动态生成多层XML

  

1。首先我们先创建一个xml的帮助类,这个帮助类不许要任何属性,需要帮助实体类识别其他的成员实体类,代码如下:
注释xml帮助类

  

进口java.lang.annotation.Documented;   

进口java.lang.annotation.ElementType;   

进口java.lang.annotation.Retention;   

进口java.lang.annotation.RetentionPolicy;   

进口java.lang.annotation.Target;   

/* *   

*   

      <李>   

    @auther QiaoZhenwu   李   <李>   

    @date 2017年8月9日下午5:16:00

      

    */李   

  

@Retention (RetentionPolicy.RUNTIME)

  

@Target (ElementType.FIELD)

  

@Documented   

公共@ interface XmlHelper {}

  

2。下面我们多创建几个实体类,并且使它们通过@XmlHelper的注解联系起来,代码如下:
进口并不知道;

  

/* *   

      <李>   

    @auther QiaoZhenwu   李   <李>   

    @date 2017年8月9日下午4:53:35

      

    */李   

  

公共类儿童{

  
 <代码>私人字符串名称;
  
  私人字符串年龄;
  
  @XmlHelper
  
  私人ListchildToChilds;
  
  @XmlHelper
  
  私人Child2 Child2;
  
  公共Child2 getChild2 () {
  
  返回child2;
  
  }
  
  公共空间setChild2 (Child2 Child2) {
  
  这一点。child2=child2;
  
  }
  
  公共字符串getName () {
  
  返回名称;
  
  }
  
  公共空间setName(字符串名称){
  
  this.name=名称;
  
  }
  
  公共字符串getAge () {
  
  返回年龄;
  
  }
  
  公共空间setAge(字符串年龄){
  
  这一点。年龄=年龄;
  
  }
  
  公共ListgetChildToChilds () {
  
  返回childToChilds;
  
  }
  
  公共空间setChildToChilds (ListchildToChilds) {
  
  这一点。childToChilds=childToChilds;
  
  } 
  

}   

/* *   

      <李>   

    @auther QiaoZhenwu   李   <李>   

    @date 2017年8月10日下午5:16:56

      

    */李   

  公共类Child2 {

  
 <代码>私人字符串名称;
  
  私人字符串年龄;
  
  公共字符串getName () {
  
  返回名称;
  
  }
  
  公共空间setName(字符串名称){
  
  this.name=名称;
  
  }
  
  公共字符串getAge () {
  
  返回年龄;
  
  }
  
  公共空间setAge(字符串年龄){
  
  这一点。年龄=年龄;
  
  } 
  

}   

/* *   

      <李>   

    @auther QiaoZhenwu   李   <李>   

    @date 2017年8月10日上午10:38:54

      

    */李   

  公共类ChildToChild {

  
 <代码>私人字符串名称;
  
  私人字符串年龄;
  
  公共字符串getName () {
  
  返回名称;
  
  }
  
  公共空间setName(字符串名称){
  
  this.name=名称;
  
  }
  
  公共字符串getAge () {
  
  返回年龄;
  
  }
  
  公共空间setAge(字符串年龄){
  
  这一点。年龄=年龄;
  
  } 
  

}   

/* *   

      <李>   

    @auther QiaoZhenwu   李   <李>   

    @date 2017年8月9日下午4:53:26

      

    */李   

  

公开课家长{

  
 <代码>私人字符串名称;
  
  私人字符串年龄;
  
  @XmlHelper
  
  私人孩童;
  
  @XmlHelper
  
  私人ParentToParent ParentToParent;
  
  公共子getChild () {
  
  返回的孩子;
  
  }
  
  公共空间setChild(孩童){
  
  这一点。孩子=;
  
  }
  
  公共字符串getName () {
  
  返回名称;
  
  }
  
  公共空间setName(字符串名称){
  
  this.name=名称;
  
  }
  
  公共字符串getAge () {
  
  返回年龄;
  
  }
  
  公共空间setAge(字符串年龄){
  
  这一点。年龄=年龄;
  
  }
  
  公共ParentToParent getParentToParent () {
  
  返回parentToParent;
  
  }
  
  公共空间setParentToParent (ParentToParent ParentToParent) {
  
  这一点。parentToParent=parentToParent;
  
  }

注解+反射+递归动态生成多层XML