欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

以返回值区分重载方法

程序员文章站 2022-04-09 21:10:03
只要编译器可以根据语境明确判断语义,那么的确可以区分重载方法。不过,有时候你并不关心方法的返回值,你想要的是方法调用的其他效果(为了副作用而调用),这时你可能会调用方法而忽略其返回值。 这时Java如何判断该调用哪个重载方法?别人该如何理解这种代码?因此根据方法的返回值来区分重载方法是行不通的 -- ......

   只要编译器可以根据语境明确判断语义,那么的确可以区分重载方法。不过,有时候你并不关心方法的返回值,你想要的是方法调用的其他效果(为了副作用而调用),这时你可能会调用方法而忽略其返回值。

这时Java如何判断该调用哪个重载方法?别人该如何理解这种代码?因此根据方法的返回值来区分重载方法是行不通的

-- 摘自Java编程思想

 

   比如有2个方法,

 void f(List list) { }

   int f(List list) { return 1; }

 

   当你调用 int f(List list) 方法时,只是需要方法对list进行处理,但是并不需要返回值。因此在调用的时候,就会直接写成 f(List list); 而不会写成 int i = f(List list)。

   这时编译器发现有 2个f(List list) ,无法知道你到底调用的哪个。别人看你写的代码时,也不好知道你调用的哪个方法。