广告
返回顶部
首页 > 资讯 > 精选 >Java的可变参数方法怎么用
  • 229
分享到

Java的可变参数方法怎么用

2023-06-29 06:06:30 229人浏览 安东尼
摘要

今天小编给大家分享一下Java的可变参数方法怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、可变参数方法的定义首先看

今天小编给大家分享一下Java的可变参数方法怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、可变参数方法的定义

首先看下可变参数方法在代码上是如何定义的,如下所示:

public static void method1(Integer id, String... names) {      System.out.println("id:" + id + " names:" + names.length);}

通过上面的示例,我们可以看出在定义方法时,在最后一个形参类型后加上三点 …,就表示该形参可以接受多个相同类型的参数值,多个参数值被当成数组传入。

这里我们需要注意几个点:

  • 可变参数只能作为函数的最后一个参数,在其前面可以有也可以没有任何其他参数;

  • 由于可变参数必须是最后一个参数,所以一个函数最多只能有一个可变参数;

  • Java 的可变参数,会被编译器转型为一个数组;

上面提到可变参数的形式会被编译成一个数组,那么问题来了,我可不可以写两个下面这样的方法呢?

public static void method1(Integer id, String... names) {   System.out.println("id:" + id + " names:"+ names.length);}public static void method1(Integer id, String[] names) {   System.out.println("id:" + id + " names:" + names.length);}

在一个类中的定义相同名字的一个可变参数的方法和一个包含数组的方法,写完过后我们就发现 idea 已经提示我们这种写法的编译不了的了。

Java的可变参数方法怎么用

从这里我们可以知道可变参数在编译为字节码后,在方法签名中会以数组形态出现的,导致这两个方法的签名一致的,如果同时出现,是不能编译通过的。

二、可变参数方法的调用

可变参数方法的调用跟其他方法的调用没什么区别,这里要说明的是,我们除了通过可变参数进行调用之外,还可以通过传入数组的形式来进行调用,如下所示:

public static void main(String[] args) {         //直接传递参数         method1(1, "ziyou", "java极客技术");       //通过数组的形式传递参数         String[] array = new String[]{"ziyou", "Java 极客技术", "fdf"};   method1(2, array);        //不传递可变参数         method1(3);}

通过可变参数和数组的形式,这两种调用形式本质上是一样的;另外可变参数的个数也可以为 0。

三、可变参数方法的重载

试想一下如果我们定义了下面这样的两个方法,定义和使用的时候会是什么情况

public static void method2(String... names) {     System.out.println("111111");}public static void method2(String value1, String value2) {  System.out.println("22222"); }

第一个是只有一个可变参数形参的方法;第二个是一个 String 类型的固定参数和第二个参数是可变参数的方法。首先,定义的时候完全没有问题,IDEA 也没有任何错误提示,编译也不会有问题。

Java的可变参数方法怎么用

那么在使用的时候呢?比如下面这样的写法会输出什么结果呢?

public static void main(String[] args) {          method2("java 极客技术", "ziyou");}

在看输出结果之前,我们可以看到,main 函数中的调用,其实这两个重载的函数都是可以满足的,而且编译也没有错,那么程序运行会输出什么呢?

Java的可变参数方法怎么用

通过实际的运行结果我们可以看到,输出的结果是22222 表示运行的是method2(String value1, String value2) 这个方法,那说明什么问题呢?

说明当存在与可变参数方法形成重载方法的时候的,会优先固定参数的方法进行执行,相信这一点大家应该都从来没有关注过。

写到这里可能有小明要问了,那如果我们第二个方法中的 value2 也是可变参数呢?那这种情况会怎么样呢?为此我们再看一下,下面的这种形式会怎样。

public static void method2(String... names) {              System.out.println("111111");     }    public static void method2(String value1, String value2) {           System.out.println("22222");       }    public static void method2(String value1, String... value2) {         System.out.println("33333");        }

首先定义的时候 IDEA 没有任何错误提示,说明编译是没有问题的,那调用的时候呢?

Java的可变参数方法怎么用

可以看到这个时候 IDEA 已经提示我们匹配到多个方法合适的方法,不能编译通过,主要是第一个和第三个方式的写法导致的,匹配到了多个可变参数的方法,我们日常开发的时候要注意这个问题。

四、Object 可变参数

看到这样有小明就要问了,那我可不可以创建一个基于 Object 的可变参数方法,这样子这个方法不就是可以接受所有类型的参数了吗?就像这样:

public static void method3(Object... objects) {        System.out.println("objects size" + objects.length);}

以上就是“Java的可变参数方法怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Java的可变参数方法怎么用

本文链接: https://www.lsjlt.com/news/323111.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java的可变参数方法怎么用
    今天小编给大家分享一下Java的可变参数方法怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、可变参数方法的定义首先看...
    99+
    2023-06-29
  • java中的可变参数使用方法
    java中的可变参数使用方法可变参数时Java 1.5新增的方法,可变参数方法接收0个或者多个指定类型的参数,可变参数机制通过先创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法。如:publ...
    99+
    2023-05-31
    java 可变参数 ava
  • Java的可变参数方法详述
    目录一、可变参数方法的定义二、可变参数方法的调用三、可变参数方法的重载四、Object 可变参数一、可变参数方法的定义 首先看下可变参数方法在代码上是如何定义的,如下所示: publ...
    99+
    2022-11-13
  • Java可变个数形参的方法实例代码
    目录前言演示优先级多个参数传参情况总结简单测试代码前言 小小知识,不值一提,了解了也不能让你提高身价,但是不了解你就是比别人少知道点!事儿就是这么个事儿,直接正题吧! 直接看代码 ...
    99+
    2022-11-13
  • Java 方法(方法的定义,可变参数,参数的传递问题,方法重载,方法签名)
    目录一、方法(Method)概念二、可变参数(Variable)三、方法的参数传递问题1. 基本数据类型2. 引用数据类型四、方法签名(Method Signature)五、方法的重...
    99+
    2022-11-13
  • Java可变参数是什么
    这篇文章主要讲解了“Java可变参数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java可变参数是什么”吧!什么是可变参数?就是方法参数用 Object... args 三个点形式,...
    99+
    2023-06-19
  • java中可变参数是什么
    这期内容当中小编将会给大家带来有关java中可变参数是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其...
    99+
    2023-06-14
  • java可变参数的作用有哪些
    这篇文章将为大家详细讲解有关java可变参数的作用有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。java可变参数的作用:在编写方法的过程中,可能会遇见一个方法有不确定参数个数的情况。一般我们会用方法...
    99+
    2023-06-14
  • java可变参数(不定向参数)的作用与实例
    java可变参数的作用: 在编写方法的过程中,可能会遇见一个方法有不确定参数个数的情况。一般我们会用方法重载来解决问题: 1 //方法重载,解决参数个数不确定问题 2 publi...
    99+
    2022-11-12
  • python怎么定义可变参数
    这篇文章主要讲解了“python怎么定义可变参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么定义可变参数”吧!说明在形参之前添加*,格式为*args。这意味着创建一个名为a...
    99+
    2023-06-20
  • C#中的out参数、ref参数和params可变参数用法介绍
    out参数: out关键字 通过引用来传递参数,在定义方法和调用方法的时候都必须使用out关键字 简单来讲out可以用来返回多个参数类型。 static void Ma...
    99+
    2022-11-12
  • 怎么在python中使用可变参数
    今天就跟大家聊聊有关怎么在python中使用可变参数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型...
    99+
    2023-06-14
  • C语言中的可变参数怎么使用
    今天小编给大家分享一下C语言中的可变参数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、什么是可变参数我们在C语言...
    99+
    2023-06-08
  • PHP函数可变参数列表的具体实现方法
    这篇文章将为大家详细讲解有关PHP函数可变参数列表的具体实现方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。也许对于PHP初级程序员来说,对于PHP函数并不能完全熟练的掌握。我们今天为大家...
    99+
    2023-06-17
  • Python可变参数用法实例分析
    本文实例讲述了Python可变参数用法。分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import math def ca...
    99+
    2022-06-04
    实例 参数 Python
  • C++11可变参数模板怎么使用
    本篇内容主要讲解“C++11可变参数模板怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11可变参数模板怎么使用”吧!可变参数函数C语言中,可变参数函数可以说是一个比较神奇的存在。例...
    99+
    2023-06-19
  • java动态参数方法怎么调用
    在Java中,可以使用可变参数来定义一个方法,这样就可以接受不定个数的参数。在调用这个方法时,可以直接将参数列表传递给方法。以下是一...
    99+
    2023-08-30
    java
  • C/C++可变参数的使用
    可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等。可变参数是实现printf(),sprintf()...
    99+
    2022-11-15
    可变参数 C C++
  • Java中方法优先调用可选参数还是固定参数
    目录固定参数可选参数注意事项1.可选参数是从0到无穷2.一个方法只能有一个可选参数3.可选参数必须要放在方法最后4.可选参数和其他同名方法组成方法重载优先调用固定参数还是可选参数?结...
    99+
    2022-11-13
  • Java中怎么获取方法参数
    这篇文章将为大家详细讲解有关Java中怎么获取方法参数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。如果你的项目是实用maven构建,那么就可以加入几行配置,追加参数。<plugin&...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作