java中的可变参数
2023-04-18 14:21:05 时间
… :表示可变参数,在函数定义时使用
可变参数与对应数组的方法是完全一样的,但是使用有一定的区别
由于方法名相同,所以冲突而报错:
使用上注意事项:
一.利用数组定义后,该方法就必须传入对应类型的数组
而使用可变参数后,可以不传入、或者传入多个参数,或者直接传入数组
函数调用:
二.当使用可变参数后,若传入的是单个或者多个参数时,编译器会对其进行封装,将这些参数封装为一个数组,所以对虚拟机来说不管是 无参数传入 或者传入多个参数 或者传入数组都是传入数组。
当无参数传入时,编译器依然会封装一个数组传入函数,数组的长度为0;
三.因为两者对应的方法名一致,所以子类覆盖父类方法时就会出现函数形式不一样的情况:
四.一个方法中只能有一个可变参数,并且该可变参数必须放在参数列表的末尾,因为不这样限制可能会导致函数调用的不确定性
五.当调用函数时,出现既可以与固定参数列表的函数和可变参数函数匹配时,会选择调用固定参数列表的函数。
六.一个类中可以定义多个含有可变参数的方法,但是调用函数时可能会出现与多个可变参数函数匹配,这种情况直接调用失败
相关文章
- 物无定味适口者珍,Python3并发场景(CPU密集/IO密集)任务的并发方式的场景抉择(多线程threading/多进程multiprocessing/协程asyncio)
- 牛了!通过 Java 技术手段,获取女朋友定位地址...
- 并发异步编程之争:协程(asyncio)到底需不需要加锁?(线程/协程安全/挂起/主动切换)Python3
- ElasticSearch集群安装及Java客户端使用
- kafka集群搭建及Java客户端使用
- Java-线程池动态修改大小
- Java如何正确地输出日志
- Java实现word、excel、ppt、txt等办公文件在线预览功能
- Jenkins用户权限管理
- 花了30天才肝出来,史上最全面Java设计模式总结,看完再也不会忘
- ansible常用变量
- 类型也是可以包罗万象的interface
- 所有实现IAnimal接口的实例对象
- 面试官问我JVM调优,我忍不住了,哈哈哈哈
- 没人陪你聊天?教你使用java制作专属智能陪聊机器人
- Java Review - 并发编程_Unsafe
- Java的Integer和Integer比较相等
- Java进阶:【集合】HashMap原理简单理解
- 《深入理解Java虚拟机》读书笔记(七)–虚拟机字节码执行引擎(下)
- Java进阶:【集合】Map接口