[发明专利]复杂类型数据自动生成方法、装置、电子设备、存储介质在审
申请号: | 201810356798.1 | 申请日: | 2018-04-19 |
公开(公告)号: | CN108549531A | 公开(公告)日: | 2018-09-18 |
发明(设计)人: | 时宇翔;虞斌;王海兵 | 申请(专利权)人: | 携程旅游网络技术(上海)有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 上海隆天律师事务所 31282 | 代理人: | 臧云霄;潘一诺 |
地址: | 200335 上海市长*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 目标类型 复杂类型数据 自动生成 叶子节点 存储介质 电子设备 子类型 复杂类型 人工参与 树形结构 父节点 根节点 遍历 构建 解析 重复 | ||
1.一种java复杂类型数据自动生成方法,其特征在于,包括:
步骤S110:构建一树形结构,包括:
步骤S111:将复杂类型数据作为当前目标类型,当前目标类型包括一个或多个子类型;
步骤S112:解析当前目标类型,将当前目标类型作为一个或多个子类型的父节点,确定当前目标类型对一个或多个子类型的包含操作;
步骤S113:判断一个或多个子类型是否为叶子节点;
若是,则执行步骤S114:确定该叶子节点的赋值方式;
若否,则执行步骤S115:将该子类型作为当前目标类型,并重复步骤S112至步骤S113;
步骤S120:根据所构建的树形结构,自叶子节点向根节点遍历生成复杂类型数据的代码。
2.如权利要求1所述的复杂类型数据自动生成方法,其特征在于,所述步骤S112包括:
判断所述当前目标类型是否为泛型类型;
若是,则通过java反射获取当前目标类型中的泛型类型参数以及当前目标类型对泛型类型参数的包含方式,将所述泛型类型参数为当前目标类型的子类型。
3.如权利要求1所述的复杂类型数据自动生成方法,其特征在于,所述步骤S112包括:
判断所述当前目标类型是否为java内置的组合数据类型;
若是,则获取组合数据类型的元素类型及组合数据类型对元素类型的包含方式,所述元素类型为当前目标类型的子类型。
4.如权利要求3所述的复杂类型数据自动生成方法,其特征在于,所述组合数据类型包括数组、集合、映射,其中,数组对元素类型的包含方式为索引,集合对元素类型的包含方式为添置,映射对元素类型的包含方式为放置。
5.如权利要求1所述的复杂类型数据自动生成方法,其特征在于,所述步骤S112包括:
判断所述当前目标类型是否具有公有构造函数;
若是,则获取当前目标类型的公有构造函数的参数类型,所述公有构造函数的参数类型为当前目标类型的子类型,所述当前目标类型对所述公有构造函数的参数类型的包含方式为公有构造函数方式;
若否,则判断所述当前目标类型是否具有工厂方法;
若是,则获取当前目标类型的工厂方法的参数类型,所述工厂方法的参数类型为当前目标类型的子类型,所述当前目标类型对所述工厂方法的参数类型的包含方式为工厂方法方式。
6.如权利要求1所述的复杂类型数据自动生成方法,其特征在于,所述步骤S113包括:
判断所述子类型是否为基本数据类型;
若是,则将该子类型作为叶子节点,并根据子类型的基本数据类型确定该叶子节点的赋值方式。
7.如权利要求6所述的复杂类型数据自动生成方法,其特征在于,所述步骤S113包括:
若所述子类型不为泛型类型、组合数据类型、基本数据类型,也不具有公有构造函数、工厂方法,则将该子类型作为叶子节点,并确定该叶子节点的赋值方式为赋予空值。
8.如权利要求1所述的复杂类型数据自动生成方法,其特征在于,若任一当前目标类型的与其祖先节点相同,则停止树形结构的构建。
9.如权利要求1所述的复杂类型数据自动生成方法,其特征在于,所述步骤S120包括:
根据所构建的树形结构,自叶子节点向根节点后序遍历生成复杂类型数据的代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于携程旅游网络技术(上海)有限公司,未经携程旅游网络技术(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810356798.1/1.html,转载请声明来源钻瓜专利网。