匹配算法重载方法

简介:

(2.3.1附加信息)广泛

Java overload resolution——匹配算法重载方法如下面:

(1)找出全部可以调用的方法。

可以调用的方法意味着形參个数等于实參个数,实參的类型可以转换为方法形參的类型。

(2)假设实參与形參的类型可以直接相应。则运行该方法。

(3)假设可以调用的方法仅仅有一个。则运行该方法。

(4)可以调用的方法不止一个时,逐一作出推断:假设一个方法的类型签名都可以赋值给还有一个方法。则后者(类型大者)被排除;反复此操作,直到无法排除为止。【the Most Specific Method】

(5)经过步骤(4),假设仅仅剩下一个方法。则运行该方法。或者编译器报错。


可是。自己主动装箱和变长參数会使问题更复杂(还有import static 因素,在下一节2.3.2)。所以,大致了解一下就能够了。

①首先不考虑自己主动装箱和变长參数②再加上自己主动装箱再加上自己主动装箱变长參数


样例1:有void m(Object )、void m(int[] )、m(int )方法,

        Object obj = null;
        m(obj);

依照(2)调用m(Object )

样例2:有void m(Object )、void m(int[] )、m(int )方法,

        m(null);

依照(4),排除m(Object )后。调用void m(int[] )

样例3:有void m(Object )、void m(int[] )、m(String )方法,

        m(null);

依照(4),排除m(Object )后,void m(int[] )和m(String )无法排除。依照(5),编译报错。

样例4:有void f(double,float )、void f(float , double )方法,

         f(12 ,9);

依照(5),编译报错。

样例5:有void f(double,float )、void f(float , double )和void f(double ,int )方法,

         f(12 ,9);

依照(5),编译报错。f(double,float )- f(float , double )

样例6:有void f(double,float )、void f(float , double )和void f(float,int )方法。

         f(12 ,9);

依照(4), 调用f(float , int)



http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12





版权声明:本文博客原创文章。博客,未经同意,不得转载。





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4713799.html,如需转载请自行联系原作者


相关文章
|
4月前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
3月前
|
数据采集 机器学习/深度学习 算法
机器学习方法之决策树算法
决策树算法是一种常用的机器学习方法,可以应用于分类和回归任务。通过递归地将数据集划分为更小的子集,从而形成一棵树状的结构模型。每个内部节点代表一个特征的判断,每个分支代表这个特征的某个取值或范围,每个叶节点则表示预测结果。
144 1
|
30天前
|
JavaScript 算法 前端开发
JS算法必备之String常用操作方法
这篇文章详细介绍了JavaScript中字符串的基本操作,包括创建字符串、访问特定字符、字符串的拼接、位置查找、大小写转换、模式匹配、以及字符串的迭代和格式化等方法。
JS算法必备之String常用操作方法
|
30天前
|
JavaScript 算法 前端开发
JS算法必备之Array常用操作方法
这篇文章详细介绍了JavaScript中数组的创建、检测、转换、排序、操作方法以及迭代方法等,提供了数组操作的全面指南。
JS算法必备之Array常用操作方法
|
1月前
|
搜索推荐 算法 Java
现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法
该博客文章通过UML类图和Java源码示例,展示了如何使用适配器模式将QuickSort类和BinarySearch类的排序和查找功能适配到DataOperation接口中,实现算法的解耦和复用。
20 1
现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法
|
4月前
|
存储 算法
【软件设计师】常见的算法设计方法——递推法
【软件设计师】常见的算法设计方法——递推法
|
30天前
|
算法 定位技术 vr&ar
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
131 0
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
|
2月前
|
机器学习/深度学习 编解码 监控
算法金 | 深度学习图像增强方法总结
**图像增强技术概括** 图像增强聚焦于提升视觉效果和细节,广泛应用于医学、遥感等领域。空间域增强包括直方图均衡化(增强对比度)、对比度拉伸、灰度变换、平滑滤波(均值、中值)和锐化滤波(拉普拉斯、高通)。频率域增强利用傅里叶变换、小波变换,通过高频和低频滤波增强图像特征。现代方法涉及超分辨率重建、深度学习去噪(如CNN、Autoencoder)、图像修复(如GAN)和GANs驱动的多种图像处理任务。
79 14
算法金 | 深度学习图像增强方法总结
|
3月前
|
机器学习/深度学习 算法 数据挖掘
算法金 | K-均值、层次、DBSCAN聚类方法解析
**摘要:** 这篇文章介绍了聚类分析的基本概念和几种主要的聚类算法。聚类是无监督学习中用于发现数据内在结构的技术,常用于市场分析、图像分割等场景。K-均值是一种基于划分的算法,简单高效但易受初始值影响;层次聚类包括凝聚和分裂方式,形成层次结构但计算复杂;DBSCAN基于密度,能处理任意形状的簇,但参数选择敏感。文章还讨论了这些算法的优缺点和适用场景,并提供了相关资源链接和Python实现。
75 9
算法金 | K-均值、层次、DBSCAN聚类方法解析
|
2月前
|
算法 vr&ar
基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法
```markdown - MATLAB2022a中比较SG与RLS自适应波束成形算法。核心程序实现阵列信号处理,强化期望信号,抑制干扰。RLS以其高效计算权重,而SG则以简单和低计算复杂度著称。[12345] [6666666666] [777777] ```