形式:类型... 参数名

示例:public void show(int... a) {};

可变参数在方法中被当作数组来处理

可变参数传值的四种方式:

  • 一个值也不传,可变参数会接收到长度为0的数组
  • 传null,可变参数会接收到null
  • 传数组,可变参数会接收到数组
  • 传1个到多个数组元素值,可变参数会接收到数组
public class Test {

    public void changeParam(int... a) {
System.out.println("数组长度为:" + a.length);
} public static void main(String[] args) {
Test m1 = new Test(); //一个值都不传递
m1.changeParam();
//传数组对象
m1.changeParam(new int[]{5,7,9,1});
//传多个元素值,会当成数组处理
m1.changeParam(1,2,3,4,5);
//传null,但是这个参数不可用
m1.changeParam(null);
}
}

可变参数和数组作为方法参数时的区别:

从个数来看,可变参数只能有一个,数组可以有多个

从定义位置来看,可变参数只能定义在参数列表的末尾,数组可以在任何位置

从传参的形式来看,可变参数可以传数组、null、0个参数、一到多个参数,数组可以传数组引用、数组对象、null

方法重载:方法名相同,但是参数列表不一致,重载的方法会根据参数来匹配调用

public class Test {

    public void show(int a) {
System.out.println("带有一个参数的方法");
}
public void show(int... a) {
System.out.println("带有可变参数的方法");
} public static void main(String[] args) {
Test m1 = new Test(); //public void show(int... a)
m1.show();
//public void show(int a)
m1.show(6);//优先调用参数匹配的方法
//public void show(int... a)
m1.show(new int[]{5,7,9,1});
//public void show(int... a)
m1.show(1,2,3,4);
}
}

Java 传递可变参数和方法重载的更多相关文章

  1. JavaSE 可变参数的方法重载

    /** * 可变参数的方法重载 */ class A { public void test(int a, int b) { System.out.println(a+", "+b) ...

  2. [改善Java代码]避免带有变长参数的方法重载

    建议4: 避免带有变长参数的方法重载 在项目和系统的开发中,为了提高方法的灵活度和可复用性,我们经常要传递不确定数量的参数到方法中,在Java 5之前常用的设计技巧就是把形参定义成Collection ...

  3. 巩固java(六)----java中可变参数方法(非常实用哦)

    java提供了可变参数的方法,即方法的参数个数可以不确定,用"..."定义. import java.util.ArrayList; import java.util.List; ...

  4. [问题记录]Java关于可变参数重载问题的测试

    突然发现java的可变参数重载是存在歧义的,只是不知道java内部是怎么处理的,特意做如下实验: 测试代码如下: /** * Created by ieayoio on 16-3-1. */ publ ...

  5. 五分钟学Java:可变参数究竟是怎么一回事?

    在逛 programcreek 的时候,我发现了一些专注基础但不容忽视的主题.比如说:Java 的可变参数究竟是怎么一回事?像这类灵魂拷问的主题,非常值得深入地研究一下. 我以前很不重视基础,觉得不就 ...

  6. Java中可变参数

    从java5开始出现了可变参数,这是对java方法及数组的拓展! 方法中可以接受的参数不再是固定个数的,而是随着具体需求传递的多少来决定. 定义格式: 返回值类型  方法名(参数类型 ... 形式参数 ...

  7. java——慎用可变参数列表

    说起可变参数,我们先看下面代码段,对它有个直观的认识,下方的红字明确地解释了可变参数的意思: public class VarargsDemo{ static int sum(int... args) ...

  8. JDK5新特性之 可变参数的方法

    可变参数的方法:不知道这个方法该定义多少个参数 注意: > 参数实际上是数组 > 必须写在参数列表最后一个 package cn.itcast.day24.varparam; import ...

  9. Java 中可变参数

    可变参数 Java 中可变参数 现在需要编写一个求和的功能,但是不知道有几个参数,在调用的时候才知道有几个参数,请问这如何实现呢? Java 给我们提供了一个 JDK 1.5 的新特性---可变参数 ...

随机推荐

  1. tcp连接的建立与释放

    1.TCP是面向连接的协议. 运输连接时用来传送TCP报文的.TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程.因此,运输链接就有三个阶段,即:连接建立.数据传送和连接释放. 在TCP ...

  2. maven项目Dao层优化

    平时我们习惯一个实体类就对应一个dao类,这样做,增删改查都大同小异,只是实体类对象不一样而已,因此,我们可以把公用的方法抽取来,建立一个IBaseDao接口,如下: public interface ...

  3. 矩阵螺旋遍历Spiral Matrix,Spiral Matrix2

    SpiralMatrix: Given a matrix of m x n elements (m rows, n columns), return all elements of the matri ...

  4. 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)

    java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写     一.流程步骤         1.执行流程           当手机端app(就是你公司开发的app)在支付 ...

  5. ggplot 画 条形图

    今天开会谈了半天自己的研究结果,同事皱着眉头,第一好像她没大听懂,第二感觉眼前一亮,但不知怎么落地.落地这个事情,交给时间吧,我想练熟我的分析. 今天搞了个简单的,条形图. 就是EXCEL里面经常玩的 ...

  6. HttpClient for .NET 4.0

    Install-Package Microsoft.Net.Http -Version 2.2.29

  7. poj1986带权lca

    lca求距离,带权值 的树上求lca,我是用倍增法求的,求两点之间的距离转化为到根节点之间的距离 (de了一个小时 的bug,重打居然就过了....) #include<map> #inc ...

  8. SVN与Git优缺点比较

    1.SVN优缺点优点: 1. 管理方便,逻辑明确,符合一般人思维习惯. 2. 易于管理,集中式服务器更能保证安全性. 3. 代码一致性非常高. 4. 适合开发人数不多的项目开发. 缺点: 1. 服务器 ...

  9. 通过Linux命令搭建测试环境里面的jdk

    一.文件准备 1.1 文件名称 jdk-8u121-linux-x64.tar.gz 1.2 下载地址 http://www.oracle.com/technetwork/java/javase/do ...

  10. nmap基本使用方法

    nmap基本使用方法 我自己的使用: nmap 149.28.72.184 Starting Nmap 7.70 ( https://nmap.org ) at 2018-06-15 16:53 CS ...