`
usagoole
  • 浏览: 8448 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

可变参数

阅读更多

==================这只是可变参数的一点点总结,后续会继续补充==============================

 

1、可变参数适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理.在方法内以数组的形式访问可变参数

2可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数,因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。

 

3、位于变量类型和变量名之间(…),前后有无空格都可以

/**

     * 可变参数列表只能出现在参数之后

     * int.. args

     * int ...args

     * int ... args

     * int...args

     * 以上几种写法都没有问题

     * */

    publicstaticint add(int x,int...args)

    {

       int sum = x;

       for(int i = 0 ;i<args.length;i++)

       {

           sum = sum+args[i];

       }

       return sum;

    }

4调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中一数组的形式访问可变参数。编译器会在背地里把这最后一个形参转化为一个数组形参,并在编译出的class文件里作上一个记号,表明这是个实参个数可变的方法。

 

5、尽管在背地里,编译器会把能匹配不确定个实参的形参(当然也包括0个参数),转化为数组形参;而且也可以用数组包了实参,再传递给实参个数可变的方法;但是,这并不表示“能匹配不确定个实参的形参”和“数组形参”完全没有差异

 

6、与数组形参的区别

         1、可变形参既能传递多个参数,也可以传递一个数组。而数组形参只能传递一个数组

7public void test(String book){}

   public void test(String … books){}

如果只传递一个参数,则会调用test(String book),解决办法传入一个字符串数组test(new String[]{“a”})

所有不推荐重载形参长度可变的方法,降低程序可读性

 

 ==========================待续................................=====================================

分享到:
评论

相关推荐

    Java数组传递及可变参数操作实例详解

    Java数组传递及可变参数操作实例详解 Java 数组传递是指在方法之间传递数组对象的引用,而不是传递数组对象本身。这意味着,方法中对数组的修改将会影响原数组。在 Java 中,所有对象都是通过引用进行操作的,而...

    C51可变参数讲解.pdf

    C51可变参数函数允许程序员设计能接受不定数量参数的函数,这在C语言中是通过头文件stdarg.h提供的宏实现的。stdarg.h在Keil C51环境中也提供了对可变参数函数的支持,可以让嵌入式开发人员灵活地编写函数,以处理...

    C语言中的可变参数

    在C语言中,可变参数是一种非常有用的功能,它允许函数接受不同数量的参数。这种特性使得函数在设计时能够处理未预知数量的输入,增强了代码的灵活性和通用性。下面将详细介绍C语言中可变参数的实现原理、使用方法...

    java可变参数

    Java可变参数是Java语言中一个非常实用的特性,它允许方法接受数量可变的参数。这个特性在Java 5中被引入,极大地提高了代码的灵活性和可读性。下面我们将详细探讨Java可变参数的概念、用法以及背后的实现原理。 ##...

    c#调用c++的可变参数

    3. **C#处理C++可变参数**:然而,C#本身并不支持可变参数,因此不能直接映射到C++的可变参数函数。为了调用这样的函数,我们需要一些技巧。一种常见方法是创建一个C++/CLI(Managed C++)的中间层,该层可以理解C++...

    如何写“可变参数函数”

    在编程中,可变参数函数是一种能够接受不同数量参数的函数。这种函数的灵活性使得它在处理不确定数量输入数据时非常有用。本文将通过实例和详细的说明,帮助你理解并掌握如何编写可变参数函数。 首先,让我们了解...

    C语言可变参数及printf函数的实现

    ### C语言可变参数及printf函数的实现 在C语言编程中,虽然可变参数(variadic functions)在自定义接口中较少应用,但作为核心功能之一,它在标准库函数如`printf`中扮演着关键角色。本文将深入探讨C语言中可变...

    PHP 可变参数

    3. **优先级问题** - 如果一个函数既有可变参数,又有常规参数,那么可变参数总是位于最后。例如,`function test($fixed, ...$variable)`,在调用`test('fixed', 'var1', 'var2')`时,'var1'和'var2'会被放入`$...

    C语言可变参数

    在C语言中,可变参数是一种非常有用的特性,它允许函数接受不同数量的参数。这种特性使得编写如`printf`函数那样灵活的函数成为可能,这些函数可以根据传入的参数动态地处理数据。本文将深入探讨C语言中的可变参数...

    从printf谈可变参数函数的实现

    在C语言中,`printf`函数是一个典型的可变参数函数,它的强大之处在于可以接受任意数量和类型的参数,而不仅仅是固定数量的参数。这得益于C语言的变长参数列表机制,该机制允许函数定义时最后一个参数是可变的,但...

    C语言中可变参数的用法

    ### C语言中可变参数的用法 #### 引言 在C语言中,经常会遇到参数个数可变的函数,比如`printf()`函数。这类函数不仅能够接收一个固定类型的参数,还可以根据需要接受数量不等的其他参数。本文将详细介绍如何在...

    C语言可变参数的使用

    在C语言中,可变参数是一种非常有用的特性,它允许函数接受不同数量的参数。这种功能在编写一些需要灵活处理参数的函数时非常方便,比如常见的`printf`函数。本篇将详细介绍C语言中可变参数的使用及其背后的机制。 ...

    C/C++定义可变参数函数,演示程序

    在C/C++编程语言中,有时我们需要编写可以接受不同数量参数的函数,这通常通过可变参数函数实现。本文将详细讲解如何定义和使用这样的函数,并通过一个演示程序来加深理解。 可变参数函数的核心是`stdarg.h`库,它...

    C语言中可变参数的用法.doc

    在C语言中,可变参数的使用是一种灵活的特性,允许函数接受不同数量或类型的参数。这在处理如`printf`等需要动态参数列表的函数时非常有用。`printf`函数的定义允许用户根据需要传递任意数量的格式化参数。 在C语言...

    c语言中可变参数va宏的使用

    ### c语言中可变参数va宏的使用 #### 一、引言 在嵌入式系统开发中,经常需要从串口打印各种测试数据以便于分析。这些数据的类型和数量往往是不确定的,这就需要使用一种能够处理可变参数的方法。在C语言中,通过...

    delphi实现类C可变参数函数

    delphi实现类C可变参数函数

    c 语言中的宏,井号,可变参数.doc

    ### C 语言中的宏、井号与可变参数详解 #### 宏的概述与使用 在C语言中,宏(Macro)是一种预处理指令,它允许开发者定义一系列文本替换规则,这些规则会在编译之前由预处理器进行处理。宏不是在程序运行时执行的...

    详解-C语言可变参数-va-list和-vsnprintf及printf实现.pdf

    C语言可变参数实现机制详解 C语言中的可变参数是一种特殊的函数参数形式,它允许函数接受不定数量和类型的参数。在日常开发中,我们常用的 printf 函数就是使用了可变参数的接口。今天,我们将深入探索 C 语言可变...

    C语言可变参数使用

    va_start 可变参数 va_end

    Java可变参数demo

    在Java编程语言中,可变参数(Variable-Argument Parameters)是一项强大的特性,它允许函数接收一个不确定数量的同类型参数。这个特性自Java 5引入,极大地提高了代码的灵活性和可读性。在这个名为"Java可变参数...

Global site tag (gtag.js) - Google Analytics