[发明专利]参数处理方法和装置有效
申请号: | 201810646530.1 | 申请日: | 2018-06-21 |
公开(公告)号: | CN108932123B | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 赵肖勇;康高杰 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F16/901;G06F16/903 |
代理公司: | 北京恒博知识产权代理有限公司 11528 | 代理人: | 范胜祥 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 参数 处理 方法 装置 | ||
本发明公开了参数处理方法和装置。所述方法包括:获取待处理的若干个参数;根据预设的参数转换模板,将该若干个参数存储为通用类型对象,得到与该通用类型对象对应的通用类型信息;将所述通用类型信息传递给参数接收者,由所述参数接收者根据所述通用类型信息获取该若干个参数。该技术方案的有益效果在于,通过参数转换模板理论上可以支持任意个数任意类型的参数,不需要进行序列化和反序列化处理,并且十分安全,效率更高。
技术领域
本发明涉及计算机技术领域,具体涉及参数处理方法和装置。
背景技术
开发人员熟知,参数的类型多样化,例如基本类型(整型int、长整型long、字符串char……)、函数、指针等都可以作为参数进行使用。
然而随着需求的不断变更,出现了很多新的问题。例如,参数接收者希望接收的参数类型、参数个数是不固定的,这样如果要把所有情形一一考虑显然是不容易实现的。一种做法是将待传递的参数序列化为一个字符串,由参数者接收到参数后进行反序列化处理,但是这样很不安全,对参数有局限性,并且效率很低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的参数处理方法和装置。
依据本发明的一个方面,提供了一种参数处理方法,包括:
获取待处理的若干个参数;
根据预设的参数转换模板,将该若干个参数存储为通用类型对象,得到与该通用类型对象对应的通用类型信息;
将所述通用类型信息传递给参数接收者,由所述参数接收者根据所述通用类型信息获取该若干个参数。
可选地,所述参数包括如下的一种或多种:
基本类型对象、lambda表达式、指针、智能指针、普通函数。
可选地,所述预设的参数转换模板包括空的参数包装基类,以及根据模板template实现的该参数包装基类的派生类;
所述根据预设的参数转换模板,将该若干个参数存储为通用类型对象,得到与该通用类型对象对应的通用类型信息包括:
根据所述派生类构造生成与该若干个参数对应的派生类对象,得到与该派生类对象对应的基类指针。
可选地,所述根据所述派生类构造生成与该若干个参数对应的派生类对象包括:
根据所述派生类中的参数包装方法,对该若干个参数进行包装。
可选地,所述根据所述派生类中的参数包装方法,对该若干个参数进行包装包括:
根据所述参数包装方法中的可变参数模板创建一个元组,将该若干个参数写入所述元组中。
可选地,所述根据所述参数包装方法中的可变参数模板创建一个元组包括:确定该若干个参数在所述元组中的索引信息。
可选地,所述索引信息包括所述元组中各位置对应参数的写入类型。
可选地,所述根据所述派生类构造生成与该若干个参数对应的派生类对象包括:
当待处理的参数的数量为一时,判断该参数的类型是否属于预设类型;
是则在所述派生类申请的内存空间中存储该参数,否则申请新的内存空间用于存储该参数。
可选地,所述派生类申请的内存空间按顺序分为三个区域,依序用于存储虚函数表、基类指针和参数。
可选地,所述参数接收者为观察者模式中的观察者或者待执行函数。
依据本发明的另一方面,提供了一种参数处理方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810646530.1/2.html,转载请声明来源钻瓜专利网。