Java 方法重载:int 和 Integer 类型如何影响方法定义?
方法重载与 int、Integer 类型关系
在学习中遇到一个问题,想知道 public int add(int a, int b) 和 public void add(Integer a, Integer b) 这两个方法之间的关系。
根据重载的条件:方法名相同、参数类型不同或个数不同、返回类型可能不同,这两个方法看似是重载。
然而,由于 Integer 是 int 的封装类型,并且在调用方法时,Java 会优先查找基本数据类型,当 public int add(int a, int b) 和 public int add(Integer a, Integer b) 同时存在时,会认为它们是 相同的方法,即使返回类型不同。
因此,当返回值类型为 int 时,编译器会报错,提示这两个方法无法区分。