关于Java可变参数问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Java可变参数问题?相关的知识,希望对你有一定的参考价值。

如图,执行代码后结果有两个,那么为什么printMax两个数组都会一起执行它们下面的代码呢?求解,谢谢大佬!

你好,很高兴回答你的问题。
这就是java可变参数的传参方式,可以直接传一个符合参数数据类型的数组,也可以是用逗号分割的多个符合参数数据类型变量。
如果有帮助到你,请点击采纳。
参考技术A 那是因为:
调用printMax方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。如果传入数组,就不用创建数组,直接处理了。
参考技术B 结果有两个,是因为你调用了两次方法。
你以为他们是一起执行的,但不是,这就是简单的顺序执行,第一次执行输出完了,另一次调用才会执行,可以打断点看看控制台和程序执行流程本回答被提问者和网友采纳
参考技术C 两种形式都可以的,都符合java可变参数的特征,只不过变换形式
其实方法内部也是转换成了数组,具体可以使用eclipse debug查看下
参考技术D 可变参数,编译器会把参数转成一个数组,所以可以直接传递一个数组,也可以按照原来的方式传参

以上是关于关于Java可变参数问题?的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中,关于可变参数和泛型的问题。

#yyds干货盘点#关于 Java 的可变参数你真的了解吗?

16 可变参数列表和重载问题(最后选择可变参数列表)

关于C中可变长参数

关于java 可变参数的问题,The method max(int[]) is ambiguous for the type test

Java中方法内的可变参数怎么使用