不说废话,直接上代码:
1 package mytest; 2 3 import java.util.List; 4 5 public class TestClass { 6 7 public void method(List<Object> list){ 8 System.out.println("method with param List<Object> invoked!"); 9 } 10 11 public void method(Object... objects){ 12 System.out.println("method with param Object... invoked!"); 13 } 14 }
1 package mytest; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 public class Main { 7 8 public static void main(String[] args) { 9 List<String> list = new ArrayList<String>(); 10 list.add("aa"); 11 list.add("bb"); 12 list.add("cc"); 13 14 TestClass t = new TestClass(); 15 16 t.method(list); 17 } 18 19 }
main方法执行结果为:
method with param Object... invoked!
为什么重载方法一个参数为List<Object>,一个参数为Object...,调用方法传参类型为List<String>,实际执行的是参数为Object...方法?
时间: 2024-10-13 02:34:53