[发明专利]反射场景下确定类重载方法的方法及装置有效
申请号: | 201610797536.X | 申请日: | 2016-08-31 |
公开(公告)号: | CN106909417B | 公开(公告)日: | 2020-04-14 |
发明(设计)人: | 赵正邦;吕仁琦;金勇;武严严 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杨泽;刘芳 |
地址: | 开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 反射 场景 确定 重载 方法 装置 | ||
1.一种反射场景下确定类重载方法的方法,其特征在于,包括:
根据外部入参所指定的方法名,确定类内所有同名方法;所述同名方法具有与所述外部入参所指定的方法名相同的方法名称;
若同名方法的个数多于一个,获取所述外部入参与每个所述同名方法间的继承关系;
根据所述继承关系,确定每个所述同名方法相对于所述外部入参的匹配度;
根据匹配度结果,在多个同名方法中确定所述外部入参的类重载方法;
其中,所述根据所述继承关系,确定每个所述同名方法相对于所述外部入参的匹配度,包括:
根据所述继承关系,确定每个同名方法的方法向量;
确定每个所述方法向量的模值,根据所述模值的大小确定每个所述同名方法相对于所述外部入参的匹配度。
2.根据权利要求1所述的方法,其特征在于,所述若同名方法的个数多于一个,获取所述外部入参与每个所述同名方法间的继承关系,包括:
将每个所述同名方法内的每个形参与所述外部入参内的每个实参进行比较,确定所述外部入参与每个所述同名方法间的继承关系。
3.根据权利要求2所述的方法,其特征在于,所述将每个所述同名方法内的每个形参与所述外部入参内的每个实参进行比较,确定所述外部入参与每个所述同名方法间的继承关系,包括:
根据所述同名方法内每个形参的位置先后顺序,确定所述外部参数中的每个实参与对应位置处的同名方法中的每个形参之间的继承层数;
根据所述继承层数,确定所述外部入参与每个所述同名方法间的继承关系。
4.根据权利要求3所述的方法,其特征在于,所述根据所述继承层数,确定所述外部入参与每个所述同名方法间的继承关系,包括:
若所述外部参数中的至少一个实参与所述同名方法对应位置处的形参之间不存在继承层数,确定所述外部入参与所述同名方法之间不存在继承关系;
若所述外部参数中的每个实参与所述同名方法对应位置处的每个形参之间存在继承层数,确定所述外部入参与所述同名方法之间存在继承关系。
5.根据权利要求1所述的方法,其特征在于,所述根据所述继承关系,确定每个同名方法的方法向量,包括:
根据每个所述同名方法内的形参的参数个数,确定每个同名方法的方法向量的向量维数;
根据每个位置相互对应的实参与形参之间的继承层数,确定每个方法向量中每一维向量元素的元素值。
6.根据权利要求3所述的方法,其特征在于,若位置相互对应的实参与形参之间没有继承关系,则确定所述同名方法不是所述外部入参的类重载方法。
7.根据权利要求5所述的方法,其特征在于,所述根据每个位置相互对应的实参与形参之间的继承层数,确定每个方法向量中每一维向量元素的元素值,包括:
若所述位置相互对应的实参与形参之间没有继承关系,确定所述实参与形参之间的继承层数为一预设无效数值;
以所述预设无效数值作为与所述形参对应维的向量元素的元素值;
相应的,所述根据所述继承关系,确定每个所述同名方法相对于所述外部入参的匹配度,包括:
根据所述预设无效数值,确定所述方法向量的模值为极大值;
相应的,所述根据匹配度结果,在多个同名方法中确定所述外部入参的类重载方法,包括:
根据所述极大值的模值,确定具有所述极大值的同名方法不是所述外部入参的类重载方法。
8.根据权利要求5所述的方法,其特征在于,所述根据每个位置相互对应的实参与形参之间的继承层数,确定每个方法向量中每一维向量元素的元素值,包括:
若所述位置相互对应的实参与形参之间存在继承关系,确定所述实参与形参之间的继承层数;
以所述继承层数的数值作为与所述形参对应维的向量元素的元素值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610797536.X/1.html,转载请声明来源钻瓜专利网。