code: public static String mergeContent(CompilationUnit one, CompilationUnit two) throws Exception {
  
          // 包声明不同，返回null
          if (!one.getPackage().equals(two.getPackage())) return null;
  
          CompilationUnit cu = new CompilationUnit();
  
          // add package declaration to the compilation unit
          PackageDeclaration pd = new PackageDeclaration();
          pd.setName(one.getPackage().getName());
          cu.setPackage(pd);
  
          // check and merge file comment;
          Comment fileComment = mergeSelective(one.getComment(), two.getComment());
          cu.setComment(fileComment);
  
          // check and merge imports
          List<ImportDeclaration> ids = mergeListNoDuplicate(one.getImports(), two.getImports());
          cu.setImports(ids);
  
          // check and merge Types
          List<TypeDeclaration> types = mergeTypes(one.getTypes(), two.getTypes());
          cu.setTypes(types);
  
          return cu.toString();
      }
docs: /*
  合并两个编译单元的内容