以返回值区分重载方法

JAVA学习网 2018-05-05 12:30:02

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

这时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) ,无法知道你到底调用的哪个。别人看你写的代码时,也不好知道你调用的哪个方法。

阅读(792) 评论(0)