[发明专利]反射场景下确定类重载方法的方法及装置有效
申请号: | 201610797536.X | 申请日: | 2016-08-31 |
公开(公告)号: | CN106909417B | 公开(公告)日: | 2020-04-14 |
发明(设计)人: | 赵正邦;吕仁琦;金勇;武严严 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杨泽;刘芳 |
地址: | 开曼群岛大开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 反射 场景 确定 重载 方法 装置 | ||
本发明提供一种反射场景下确定类重载方法的方法及装置,包括:根据外部入参所指定的方法名,确定类内所有同名方法;同名方法具有与外部入参所指定的方法名相同的方法名称;若同名方法的个数多于一个,获取外部入参与每个同名方法间的继承关系;根据继承关系,确定每个同名方法相对于外部入参的匹配度;根据匹配度结果,在多个同名方法中确定外部入参的类重载方法。该方案解决了现有技术中当存在多个重载方法,且入参列表与方法列表具有继承关系时无法正确调用与入参列表匹配的方法的技术问题,本发明实现了快速、高效为入参确定是否有可调用的方法,以及为入参提供可靠性高的类重载方法。
技术领域
本发明涉及计算机程序处理技术,尤其涉及一种反射场景下确定类重载方法的方法及装置。
背景技术
在Java系统开发中,常常需要使用反射来调用对象,反射就是指计算机程序在运行时可以访问、检测和修改自身状态或行为的一种能力,用比喻来说,这种程序能够“观察”并且修改自己的行为。
通常来说,在反射场景中,当接收到业务请求,该业务请求中包含有入参(实参)列表,为了找到能够匹配并执行该入参列表中入参的对应方法,则通过方法名来确定唯一与该入参对应的方法。但是当有多个同名的重载方法时,特别是在入参列表中的参数个数相同、且入参列表与方法参数列表具有继承关系时,到底应该调用哪个方法,就变得难于确定,导致该入参不能被执行,程序报错。其中,“重载”是指在同一个类中定义了一个以上具有相同名称,但是型构不同的方法;也就是说,函数或者方法有同样的名称,但是参数列表不相同的情形。“继承”是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为B的子类,而把B称为A的父类。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。还可以为子类追加新的属性和方法。也就是说,继承是在一个现有类型的基础上,通过覆盖、增加新的方法或者重新定义已有方法的方式,产生一个新的类型。
发明内容
本发明提供一种反射场景下确定类重载方法的方法及装置,以解决现有技术中有多个重载方法,且入参列表与方法列表具有继承关系时无法正确调用与入参列表匹配的方法的技术问题。
一方面,本发明提供一种反射场景下确定类重载方法的方法,包括:
根据外部入参所指定的方法名,确定类内所有同名方法;所述同名方法具有与所述外部入参所指定的方法名相同的方法名称;
若同名方法的个数多于一个,获取所述外部入参与每个所述同名方法间的继承关系;
根据所述继承关系,确定每个所述同名方法相对于所述外部入参的匹配度;
根据匹配度结果,在多个同名方法中确定所述外部入参的类重载方法。
本实施例通过根据外部入参与同名方法间的继承关系,对多个同名方法进行匹配度计算,并根据计算结果确定与入参相匹配且匹配度高的方法作为该外部入参对应的类重载方法,从而解决了现有技术中当存在多个重载方法,且入参列表与方法列表具有继承关系时无法正确调用与入参列表匹配的方法的技术问题,本发明实现了快速、高效为入参确定是否有可调用的方法,以及为入参提供可靠性高的类重载方法。
作为一种可实现的方式,所述若同名方法的个数多于一个,获取所述外部入参与每个所述同名方法间的继承关系,包括:
将每个所述同名方法内的每个形参与所述外部入参内的每个实参进行比较,确定所述外部入参与每个所述同名方法间的继承关系。
作为一种可实现的方式,所述将每个所述同名方法内的每个形参与所述外部入参内的每个实参进行比较,确定所述外部入参与每个所述同名方法间的继承关系,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610797536.X/2.html,转载请声明来源钻瓜专利网。