zoukankan      html  css  js  c++  java
  • Java可变长参数方法调用问题

    不说废话,直接上代码:

     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...方法?

    泛型问题,如果注释掉Object...方法,则编译报错,不能将List<String>转换为List<Object>。

  • 相关阅读:
    sws_getContext函数参数介绍
    FFmpeg 将YUV数据转RGB
    信号槽同步
    git stash
    Qt 事件
    Qt 信号与槽函数
    微信红包的算法实现
    Python正则表达式中的re.S
    hive函数 -- split 字符串分割函数
    python None与Null
  • 原文地址:https://www.cnblogs.com/GoQC/p/5750300.html
Copyright © 2011-2022 走看看