[发明专利]复杂类型数据自动生成方法、装置、电子设备、存储介质在审
申请号: | 201810356798.1 | 申请日: | 2018-04-19 |
公开(公告)号: | CN108549531A | 公开(公告)日: | 2018-09-18 |
发明(设计)人: | 时宇翔;虞斌;王海兵 | 申请(专利权)人: | 携程旅游网络技术(上海)有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 上海隆天律师事务所 31282 | 代理人: | 臧云霄;潘一诺 |
地址: | 200335 上海市长*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 目标类型 复杂类型数据 自动生成 叶子节点 存储介质 电子设备 子类型 复杂类型 人工参与 树形结构 父节点 根节点 遍历 构建 解析 重复 | ||
本发明提供一种复杂类型数据自动生成方法、装置、电子设备、存储介质。java复杂类型数据自动生成方法包括:步骤S110:构建一树形结构,包括:步骤S111:将复杂类型数据作为当前目标类型,当前目标类型包括一个或多个子类型;步骤S112:解析当前目标类型,将当前目标类型作为一个或多个子类型的父节点,确定当前目标类型对一个或多个子类型的包含操作;步骤S113:判断子类型是否为叶子节点;若是,则执行步骤S114:确定该叶子节点的赋值方式;若否,则执行步骤S115:将该子类型作为当前目标类型,并重复步骤S112至步骤S113;步骤S120:自叶子节点向根节点遍历生成复杂类型数据的代码。本发明提供的方法及装置能够自动生成复杂类型的数据,减少人工参与。
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种复杂类型数据自动生成方法、装置、电子设备、存储介质。
背景技术
现有的java数据自动生成方法对基本数据类型的支持较好,但对于复杂数据类型,包括类(Class)类型、集合类型、映射类型、数组类型、泛型类型以及它们的组合、嵌套类型的数据生成不够完善,表现为以下两点:
(1)数据的构造不充分,包括类的属性没有赋值,集合、数组、映射等类型的元素没有进一步生成,对于具有多层嵌套结构的复杂类型则更加明显,这是因为对复杂类型结构的解析不完整。
(2)泛型信息不完整,以泛型类型对应的原始类型的方式生成数据,无法体现出目标类型中的泛型参数,需要人工干预进行类型转换,从而可能导致类型安全问题,这是由于忽略了类型中的泛型信息。
发明内容
本发明为了克服上述现有技术存在的缺陷,提供一种复杂类型数据自动生成方法、装置、电子设备、存储介质,可以自动生成复杂类型的数据,减少人工参与。
根据本发明的一个方面,提供一种java复杂类型数据自动生成方法,其包括:
步骤S110:构建一树形结构,包括:
步骤S111:将复杂类型数据作为当前目标类型,当前目标类型包括一个或多个子类型;
步骤S112:解析当前目标类型,将当前目标类型作为一个或多个子类型的父节点,确定当前目标类型对一个或多个子类型的包含操作;
步骤S113:判断一个或多个子类型是否为叶子节点;
若是,则执行步骤S114:确定该叶子节点的赋值方式;
若否,则执行步骤S115:将该子类型作为当前目标类型,并重复步骤S112至步骤S113;
步骤S120:根据所构建的树形结构,自叶子节点向根节点遍历生成复杂类型数据的代码。
可选地,所述步骤S112包括:
判断所述当前目标类型是否为泛型类型;
若是,则通过java反射获取当前目标类型中的泛型类型参数以及当前目标类型对泛型类型参数的包含方式,将所述泛型类型参数为当前目标类型的子类型。
可选地,所述步骤S112包括:
判断所述当前目标类型是否为java内置的组合数据类型;
若是,则获取组合数据类型的元素类型及组合数据类型对元素类型的包含方式,所述元素类型为当前目标类型的子类型。
可选地,所述组合数据类型包括数组、集合、映射,其中,数组对元素类型的包含方式为索引,集合对元素类型的包含方式为添置,映射对元素类型的包含方式为放置。
可选地,所述步骤S112包括:
判断所述当前目标类型是否具有公有构造函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于携程旅游网络技术(上海)有限公司,未经携程旅游网络技术(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810356798.1/2.html,转载请声明来源钻瓜专利网。