zoukankan      html  css  js  c++  java
  • [问题记录]Java关于可变参数重载问题的测试

    突然发现java的可变参数重载是存在歧义的,只是不知道java内部是怎么处理的,特意做如下实验:

    测试代码如下:

     1 /**
     2  * Created by ieayoio on 16-3-1.
     3  */
     4 public class VarTest {
     5 
     6     public static void aaa(int ...a){
     7         System.out.println("可变参数重载");
     8     }
     9 
    10     public static void aaa(int a){
    11         System.out.println("非可变参数重载");
    12     }
    13     public static void main(String[] args) {
    14         
    15     }
    16 }

    1.在14行添加aaa();时运行结果为:

    可变参数重载

    Process finished with exit code 0

    2.在14行添加aaa(111,111);时运行结果为:

    可变参数重载

    Process finished with exit code 0

    3.在14行添加aaa(111);时运行结果为:

    非可变参数重载

    Process finished with exit code 0

    4.将代码改为以下:

     1 /**
     2  * Created by ieayoio on 16-3-1.
     3  */
     4 public class VarTest {
     5 
     6     public static void aaa(int a){
     7         System.out.println("非可变参数重载");
     8     }
     9 
    10     public static void aaa(int ...a){
    11         System.out.println("可变参数重载");
    12     }
    13 
    14     public static void main(String[] args) {
    15         aaa(111);
    16     }
    17 }

    结果依然为:

    非可变参数重载

    Process finished with exit code 0

    结论:当使用可变参数重载方法时,java内部会优先使用非可变参数方法去执行程序

    原文链接:http://www.cnblogs.com/ieayoio/p/5231751.html

  • 相关阅读:
    CIL中间语言浅谈
    keepalived实现nginx高可用
    centos 开启关闭网卡
    CentOS7下安装httpd服务
    freeswitch socket连接报错
    centos安装nodejs
    CronTrigger
    mysql 表增加索引
    FreeSWITCH呼叫参数之sip_cid_type
    中继网关开启呼入
  • 原文地址:https://www.cnblogs.com/ieayoio/p/5231751.html
Copyright © 2011-2022 走看看