java-[Java]可变参数列表的参数传递

问题描述

[Java]可变参数列表的参数传递

想问一下,可变参数列表Object... a 和 Object[] a 这两种写法到底有啥区别呢?


class Abc{ }

public class AboutObject {
    static void pr(Object... a){   //Object[] a
        for(Object i:a)
            System.out.print(i+"   ");
    }

    public static void main(String[] args){
        Object[] vmpair =new Object[]{
            new Abc(),new Abc(),new Abc(),
        };
        pr(vmpair);
    }
}

解决方案

前者是可变参数,后者是数组,调用方式不同。
前者可以直接调用pr(new Abc(), new Abc(), new Abc());
不需要定义数组。

解决方案二:

从测试效果上看,可变参数列表Object... a 和 Object[] a ,前者等价与后者的数组的。

时间: 2024-12-02 09:44:33

java-[Java]可变参数列表的参数传递的相关文章

Thinking in java 可变 参数列表问题,请各位帮忙解决。

问题描述 Thinking in java 可变 参数列表问题,请各位帮忙解决. public class OverloadingVarargs3 { static void f(float i Character... args) { System.out.println(""first""); } static void f(char c Character... args) { System.out.println(""second&quo

可变参数列表-Java SE5新特性(转)

Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理.注意:可变参数必须位于最后一项.当可变参数个数多于一个时,必将有一个不是最后一项,所以只支持有一个可变参数.因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项. 可变参数的特点:(1)只能出现在参数列表的最后: (2)...位于变量类型和变量名之间,前后有无空格都可以:(3)调用可变参数的方法时,编译

java-[Java]关于重载方法中的可变参数列表

问题描述 [Java]关于重载方法中的可变参数列表 <Thinking in Java>第105页有一句话不理解 如何理解你应该总是只在重载方法的一个版本上使用可变参数列表,或者压根就不是用它 解决方案 就是当重载一个方法时,选择其中的一个重载使用可变参数,其他的避免使用,否则编译的时候容易出问题.具体的参看http://www.cnblogs.com/lanxuezaipiao/p/3190673.html 解决方案二: 这个道理很简单,比如说你有foo(int x int ... args

JRuby中调用java带可变参数的方法

今天同事遇到的问题,用JRuby调用一个java方法,该方法使用了jdk1.5的可变参数.我一开始以为只要简单地将可变参数表示为数组即可,例如下面的两个java类: public class Echo{ public void echo(String name){ System.out.println(name); } } public class Test{ public void hello(String name,Echoargs){ System.out.println("hello,&

如何应用Java的可变参数

Java语言在JDK1.5中首次推出可变参数,variable arguments,或简称varargs.这一新语言特征给软件开发人员在编写方法重载时提供了方便和灵活性.但可变参数的应用并不像想象的那么简单,使用时有其特殊要求和局限性. 重载的最好例子 读者朋友可能有这样的编程经历:在编写一个方法时,其参数随着程序运行的条件而变化,在编译期间无法确定.具体地讲,例如编写一个打印参加聚会party的程序,其中方法printInvitation()将根据作为参数的参加人姓名,打印邀请卡.但这个参数的

从零开始学JAVA之可变参数_java

下面是一个简单的小程序: 复制代码 代码如下: import java.util.Arrays; class lesson6 {     public static void main(String[] args)     {         int array[]={2,3,1,5,4,6};         System.out.println(Arrays.toString(array));         System.out.println(getSum(array));       

一个fprintf的简单封装实例(vsprintf,va_start(),+va_arg(),+va_end()可变参数列表)

对于不方便进行调试的程序,最好的方法,就是将调试信息写入文件了. 下面是一个简单的实例,仅供参考. 程序代码: #include <string.h> #include <stdio.h> #include <stdarg.h> #ifndef DEBUG #define DEBUG #endif int LOG2F(const char *format,...) { int ret = 0; #ifdef DEBUG FILE* fp = NULL; fp=fopen

解析Java的可变长参数列表及其使用时的注意点_java

Java 可变参数列表 复制代码 代码如下: class A {} 由于所有的类都继承于Object,可以以Object数组为参数的方法: public class parameter { static void printArray(Object[] args){ for(Object obj : args){ System.out.print(obj + " "); } System.out.println(); } public static void main(String[]

java可变参数使用示例_java

Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理.注意:可变参数必须位于最后一项.当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数.因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项. 可变参数的特点: 1.只能出现在参数列表的最后: 2....位于变量类型和变量名之间,前后有无空格都可以: 3.调用可变参数的方法时,编译器