Java方法使用不同的参数调用

V I*_*S H -3 java

我有两个带有参数int和long的add方法.当我调用"add(2)"时,调用带有int参数的add方法.任何人都可以帮助这背后的逻辑.为什么不调用其他add方法.

 private static void add(int a){
     System.out.println("int");
 }

  private static void add(long b){
     System.out.println("long");
 }
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 6

这是方法重载.当有多个具有相同名称的方法可用时,编译器会选择最适合所提供参数的方法.

2是一个类型的文字int,所以add(2)调用带int参数的方法.调用带a long,call add(2L)或的方法add((long)2).