Java变长参数

java的变长参数 能够方便使用者调用函数,避免用户调用多个函数的,简便。 立即下载

在Java5中提供了变长参数,也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如:print("hello");print("hello","lisi");print("hello","张三");下面介绍如何定义可变长参数以及如何使用可变长参数。

1、可变长参数方法的定义

使用...表示可变长参数,例如

print(String... args){

   ...

}

在具有可变长参数的方法中可以把参数当成数组使用,例如可以循环输出所有的参数值。

print(String... args){

   for(String temp:args)

      System.out.println(temp);

}

2、可变长参数的方法的调用

调用的时候可以给出任意多个参数,例如:

print("hello");

print("hello","lisi");

print("hello","张三");

3、注意事项

3.1 在调用方法的时候,如果能够和固定参数的方法匹配,也能够与可变长参数的方法匹配,则选择固定参数的方法。看下面代码的输出:

package ch6;

import static java.lang.System.out;
public class VarArgsTest {

 public static void main(String[] args) {
  VarArgsTest test = new VarArgsTest();
  test.print("hello");
  test.print("hello","zhangsan");
 }
 
 public void print(String... args){
  for(int i=0;i<args.length;i++){
   out.println(args[i]);
  }
 }
 
 public void print(String test){
  out.println("----------");
 }
}

3.2 如果要调用的方法可以和两个可变参数匹配,则出现错误,例如下面的代码:

package ch6;

import static java.lang.System.out;
public class VarArgsTest {

 public static void main(String[] args) {
  VarArgsTest test = new VarArgsTest();
  test.print("hello");
  test.print("hello","zhangsan");
 }
 
 public void print(String... args){
  for(int i=0;i<args.length;i++){
   out.println(args[i]);
  }
 }
 
 public void print(String test,String...args ){
  out.println("----------");
 }
}

对于上面的代码,main方法中的两个调用都不能编译通过。

3.3 一个方法只能有一个可变长参数,并且这个可变长参数必须是该方法的最后一个参数

以下两种方法定义都是错误的。

 public void test(String... strings,ArrayList list){
  
 }
 
 public void test(String... strings,ArrayList... list){
  
 }

下面是一个有陷阱的例子(例子来源http://topic.youkuaiyun.com/u/20090515/23/54cca7cb-f9a**84f-9a25-1be1ab447ec8.html),请写出输出结果:

public class TestVarargs{
public static void m(String[] ss){
for(int i=0; i <ss.length; i++){
System.out.println(ss[i]);
}
}
public static void m1(String s, String... ss){
for(int i=0; i <ss.length; i++){
System.out.println(ss[i]);
}
}
    public static void main(String[]args){
String[] ss = {"aaa", "bbb", "ccc"};
m(ss);
m1("");
m1("aaa");
m1("aaa", "bbb");
    }
}

完毕!

李绪成 优快云 Blog:http://blog.youkuaiyun.com/javaeeteacher
优快云学生大本营:http://student.youkuaiyun.com/space.php?uid=124362
如果喜欢我的文章,就加我为好友:http://student.youkuaiyun.com/invite.php?u=124362&c=7be8ba2b6f3b6cc5

Java中可变长参数的使用及注意事项 在Java5 中提供了变长参数(varargs),也是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如print(hello);print(hello,lisi);print(hello,张三, alexia);下面介绍如何定义可变长参数 以及如何使用可变长参数。   1. 可变长参数的定义   使用…表示可变长参数,例如 print(String… args){ … }   在具有可变长参数的方法中可以把参数当成数组使用,例如可以循环输出所有的参数值。 print(String… args){    for( 立即下载

相关推荐

VL53L0X加盖玻片后精度暴跌?手把手教你完成串扰校准(CrossTalk Calibration)

本文详细解析了VL53L0X激光测距传感器加盖玻片后精度下降的原因,并提供了串扰校准(CrossTalk Calibration)的完整解决方案。通过分步指导和实用代码示例,帮助工程师恢复毫米级测距精度,适用于智能门锁、扫地机器人等应用场景。

weixin_33708432的博客 539

scala笔记学习笔记

一,定长数组和变长数组 变长数组:数组长度可变 定长数组:数组长度不可变 二,变长和定长数组之间的转换 定长转变长:调用toBuffer方法 定长转变长:调用toArray方法 三,函数 Map:映射,针对列表当中的每个元素进行操作,操作完成后,返回i一个新的列表 特点:操作之前列表当中有多少个元素,操作之后,还是多少个 filter:过滤出来我们想要的结果,摒弃掉不要的结果 四,tuple元组 最多只能存放22个元素 五,集合 List:有序,有索引,里面元素可以重复 Set:

刘小白 309

系统设计---算法与架构

这片文章对系统设计的具体步骤及相关知识进行介绍,主要分为四部分:算法设计、IC系统架构设计、基于systemC的IC系统设计、系统设计工具SPW简介。 (一)算法设计 系统设计的第一步是给出清晰的系统规范,该规范写明了系统的功能、性能、费用、开发时间等。接下来创建一个系统行为模型,并且可以用来初步验证设计的性能。再下来,对行为模型进行细化,即进行算法设计。算法设计大致分为三步: 1)给出浮点

正在努力的ICer的博客 4373

Java基础-可变长参数

本篇目录 1、什么是可变长参数 2、可变长参数的定义 3、可变长参数的使用 4、遍历可变长参数 1、什么是可变长参数 可变长参数顾名思义是可以改变长度的参数,意为传入的参数个数可以不固定。 Java中什么数据类型可以改变长度?当然是数组。确实,在JDK5之前的确是使用数组来实现可变长参数的。 那么什么是可变长参数?如下代码: public static void test(String[] args){ for(String str:args){ System.out.print

二饭的博客 6926

QGIS实用功能:加载天地图与下载指定区域遥感影像

本文聚焦 QGIS 软件实用功能,详细介绍在 QGIS 中加载天地图及其他常用底图(如 Google Maps、Bing Maps)的完整流程,涵盖天地图插件安装、密钥获取与配置、插件拓展使用等操作。同时,以 上海市瑞金二路街道为例,分步讲解下载指定区域遥感影像的方法,包括图层选择、坐标系设置、分辨率调整等关键参数配置。此外,还介绍了影像精准裁剪技巧,为 GIS 数据获取与处理提供实用指导,助力用户高效使用 QGIS 开展地理信息相关工作。

weixin_43679228的博客 7433

用python将dycom .dcm格式图像转换为nifti .nii

因为发现目前搜索到的多数中文教程并不能正确将FMRI图像正确转换,例如很多用simpleITk的seriesreader的,所以写了一下自己正确转换的方法。因为FMRI是一个4D数据,有时间轴,所以用seriesreader读写出来的图像把时间轴维度给降维了。当然你用SPM12工具的dycom import也是能正确转换的,但是我还是喜欢python这样的,代码直接简单。

qq_41103479的博客 3609

JAVA方法中的可变长参数

可变长参数是作为形参可以在方法调用时,可以接收多个实参的一种特殊形参形式。但其本质是将接收的数据转换为数组格式储存。可变长参数的诞生是在在JDK1.5的版本,也就是说我们要在JDK1.5以上的版本才可以使用。a 就是一个可变长参数。调用时:可变长参数的实参个数是可以随意的。以上三种调用格式都是正确的。一、什么是可变长参数。一、什么是可变长参数。

qq_57167753的博客 966

Quartus II 13.1 出现 ‘‘can‘t find design entity <Filename>‘‘ 问题的解决方法

Quartus II 13.1 出现 ''can't find design entity '' 问题的解决方法

qq_62076686的博客 1万+

Java 可变长参数

从 Java5 开始,Java 支持定义可变长参数,所谓可变长参数就是允许在调用方法时传入不定长度的参数。可变长参数允许方法接受任意多个相同类型的参数,在方法内部可以将这些参数视为数组来处理。Type...可变长参数只能作为方法的最后一个参数,一个方法最多只能有一个可变长参数。当调用带有可变长参数的方法时,可以向方法传递任意数量的实参,编译器会将这些实参封装成数组,并传递给方法内部进行处理。如果没有实参传递给可变长参数,那么该参数将被视为长度为 0 的数组。

tszc95的博客 912

⭐️VMwareWorkstation17.0虚拟机搭建WindowsXP虚拟机(完整安装步骤详细图文教程)

Windows XP是微软公司研发的计算机操作系统,于2001年10月25日正式发布。其名字中“XP”的意思来自英文中的“体验”(Experience)。Windows XP使用了Luna图形用户界面和双列开始菜单,提升了系统的安全性和工作性能,提供了WiFi支持,简化了软件的安装和运行,并增加了远程桌面功能。

Python老吕的博客 1万+

车载ECU底软测试:方法与技术的深度解析

底软是运行在 ECU 硬件平台上的基础软件,它为上层应用程序提供了硬件驱动、操作系统服务、通信协议栈等功能。底软的主要功能包括:硬件驱动:负责与 ECU 的各种硬件外设进行通信和控制,如 GPIO、UART、SPI、CAN 等。操作系统服务:提供任务调度、内存管理、中断处理等功能,确保系统的实时性和稳定性。通信协议栈:实现 ECU 与其他 ECU 或外部设备之间的通信,如 CAN、LIN、FlexRay 等。诊断服务:负责对 ECU 的故障进行诊断和处理,并将故障信息存储在故障码存储器中。

天赐好车的博客 1426

java变长参数

本文来源于:http://www.cnblogs.com/lanxuezaipiao/p/3190673.html 在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如print("hello");print("hello","lisi");print("hello","张三", "alexia");下

冬青的专栏 1985

PyTorch深度学习实战(39)——少样本学习(Few-shot Learning)

小样本学习 (Few-shot Learning) 旨在解决在训练集中只有很少样本的情况下进行分类和推理的问题。在小样本学习中,我们希望通过利用已有的少量样本和先验知识来进行泛化,以便在面对新的、未见过的类别时能够做出准确的预测。这就要求模型能够从有限的训练样本中提取出有用的信息,并能够将这些信息应用到新类别的样本中去。在本节中,将介绍孪生、原型和关系网络的原理,并使用 PyTorch 实现孪生网络。

盼小辉丶的博客 1万+

java中函数使用变长参数

java中函数使用变长参数 2010-01-01 21:09 当参数个数不确定时,开发者很想使用变长参数,让调用者以更灵活的方式调用。此种方法和方法重载有同样的效果,但是个人感觉比方法重载用着简洁。一直知道Java支持变长参数函数,然而项目中一直没有用到,前几天在项目中看到前辈大量使用变长参数,感觉有很好的效果。特别是API设计中能够解决很多不确定因素。下面是一个简单的

Athenaer的专栏 4911

机器人自适应砂带磨削镍基高温合金精铸叶片试验研究.pdf

机器人自适应砂带磨削镍基高温合金精铸叶片试验研究.pdf

基于AT89C52单片机的出租车计价器-17

17、基于AT89C52单片机的出租车计价器1、功能:无乘客时显示器显示年月日时分秒时间,时间可修改;有乘客时,点击开始计费,电机开始运作模拟行驶距离,实时显示消费;计费后可以修改计费系统起价费,超过起价费每公里或分钟收费;清零车费功能;白天与夜晚起价费分开修改使用功能;起始距离默认5km2、压缩包构造:代码与仿真常见问题、Keil源码程序、Proteus仿真图、原理图、开题报告、任务书、参考报告、功能介绍、仿真代码运行、免费PPT模版、焊接事项、元件清单、仿真视频、使用前必读3、仿真构造:lcd液晶显示器,8个按键,DS1302时钟芯片,24c02芯片掉电存储、3v直流电机4、代码文件:代码608行左右有注释,参考设计9800字左右(包含1000字左右代码)。

java变长参数,是怎样变长的?

java方法支持变长参数。这样能够极大地简化我们的编程。我们看这样一段代码: public class Args { public static void main(String[] args) { String two = stringConcat("A", "B"); String three = stringConcat("A", "B", "C"...

guohengcook的博客 2984

2000-2023年上市公司全要素生产率数据OP法(含原始数据+计算代码+计算结果).zip

2000-2023年上市公司全要素生产率数据(含原始数据+计算代码+结果)1、时间:2000-2023年2、来源:上市公司NB3、指标:stkcd、year 、证券代码、固定资产净额、资产总计、负债合计、员工人数 、成立日期 、上市日期 、所属省份 、所属城市 、企业性质 、营业收入、税金及附加、营业利润、购买商品、接受劳务支付的现金、支付给职工以及为职工支付的现金、购建固定资产、无形资产和其他长期资产支付的现金、固定资产折旧额、是否国有、上市年份、成立年份、TFP-OP4、范围:上市公司5、参考文献:Z国工业企业全要素生产率估计:1999-2007(鲁晓东)

java scala中传递变长参数

1.java中传递变长参数 在java中传递变长参数的方式为...,看个简单的实例 public static void argsTest(String... args) { for(String each: args) { System.out.println(each); } } public static vo...

bitcarmanlee的博客 996

深度学习分类数据集:猫狗图片数据集(已做数据集划分)

项目包含:猫狗图片数据集(已做数据集划分),数据保存按照文件夹保存,经测试,可直接作为图像分类数据集,用ImageFolder打开,无需额外处理。【数据集介绍】猫狗图像分类,2类别:cat和dog【数据总大小】44 MB【数据集详情】data目录下分为两个目录,train为训练集、test为测试集,存放各自的同一类数据图片。train数据总数1200,test数据总数800为了方便查看数据,提供了可视化py文件,随机传入一张图片即可绘制边界框,并且保存在当前目录。脚本无需更改,可以直接运行!

Java变长参数列表

例子: /** * 变长参数列表 * @author HailongYao * */ public class Longer { //变长参数列表的声明方式为,在方法最后一个参数的类型后面加上省略号(...), //指明最后一个参数可以重复零次或多次。 public static int max(int first, int... rest) { int max = firs...

csdn_yaohailong的博客 725

java变长参数_Java 变长参数(8)

https://mp.weixin.qq.com/s/yKCUlvaL9GwgpvSjBtvihQhttps://mp.weixin.qq.com/s?__biz=MzI3ODc3NzQ4NQ==&mid=2247483751&idx=1&sn=be19baaeb35b1b26f40ea3197fa77fa7&chksm=eb509a85dc27139306b057...

weixin_42474537的博客 228

java中可变长参数

1 ** 2 * Created by Lenovo on 2017/12/10. 3 * java中可变长参数 4 */ 5 public class reflect04 { 6 7 //m1有一个int类型的可比变长参数 8 //m1在调用的时候实参可以是0-N个 9 public static void m1(i...

ao63946的博客 111

Java 变长参数Varargs

Varargs (variable arguments)可变长参数 ...

yqj2065的博客 3050
上一篇: Java反射机制
下一篇: Java中使用ResourceBundle访问资源文件(properties文件)
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值