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

  • 相关阅读:
    第三天
    第二天
    第一天
    构建之法阅读笔记06
    返回一个一维整数数组中最大子数组的和2
    团队介绍
    软件工程结对作业02
    返回一个整数数组中最大子数组的和
    构建之法阅读笔记05
    暑假周总结二7.22
  • 原文地址:https://www.cnblogs.com/ieayoio/p/5231751.html
Copyright © 2011-2022 走看看