`

java方法不定长度参数

    博客分类:
  • java
 
阅读更多
JAVA不定参数探秘
JAVA中可以使用不定参数,
例如 public void test(String ...args){...} 这里test方法可以传入参数的情况是:
1.不使用参数,如test()
2.使用一个或多个参数,如test("1"); test("1","2");
3.使用数组 test(new String[]{"1","2"});
在test方法内部,我们可以像使用数组的访问方式一样来访问参数args.如:args[i] 这样就有一个好处,在参数输入不定的情况下,使用这个方法非常简单。非常易于使用。
有几点需要注意的就是 
  我们见到的是不定参数,其实编译器编译之后它会将这个test(String ...args){...} 编译成为数组调用的方式test(String[] args){} ,这个过程是编译中就完成了的,我们程序编写过程中看不到这个实际的转换过程。  而我们调用这个test方法时,编译器同样会把参数转换成new String[]{""}的形式调用,所以,本质上来讲,就是一个以数组为参数的调用方法,我们看不到而已,具体详细情况可以反编译class类就可以明了。
如果同时同一个类中还有一个test方法,例如test(),或者test(String args) ,我们采用 test("1")的方式调用,我们就可以知道了,因为有这个方法存在,所以编译器就会优先使用这个 test(String args)    方法,而不会使用不定参数的方法,这个原因很明确,因为不定参数本质上是一个数组为参数的方式。所以,如果你定义了一个不定参数的test方法,如果你再定义一个test(String[] args)的以数组为参数的方法,编译器就会提示你方法定义重复。道理就在这里。
  希望以上的解释能够帮助到大家。

转自:http://www.cnblogs.com/lovingprince/archive/2008/05/20/2166386.html
分享到:
评论

相关推荐

    java可变参数

    综上所述,Java可变参数是Java语言中一个强大的特性,它简化了处理不定数量参数的方法定义,同时提供了良好的可读性和便利性。理解其工作原理和使用注意事项,可以帮助我们编写出更高效、更易于维护的代码。

    关于java中可变长参数的定义及使用方法详解

    例如,以下是一个简单的可变长参数方法: ```java public void test(String... str) { for (String s : str) { // 执行相关操作 } } ``` 在这个例子中,`String... str` 就是一个可变长参数,它实际上等价于...

    java类和对象之可变参数.docx

    Java 类和对象是编程语言的基础,而可变参数(Variable Argument)是 Java 为了解决方法接收不定数量参数的问题引入的一个特性。这个特性允许我们创建一个方法,它能接受一个可变数量的参数,而不是固定数量。这在...

    优质java课件 java程序设计教程(第6版)07.数组复习(共19页).ppt

    - Java允许定义接受可变长度参数的方法,这在处理不确定数量输入的情况下非常有用。使用`...`语法,如`public double average(int... numbers)`,这会将所有传入的参数收集到一个整型数组`numbers`中,方便在方法...

    Java基础知识加强

    可变参数是JDK 5.0的另一创新,它允许方法接收不定数量的参数,如Arrays.asList()方法。调用时,编译器会自动创建一个数组来存储这些参数。但是,可变参数必须作为方法参数列表的最后一个参数,并且一个方法只能有一...

    黑马程序员入学Java精华总结

    - Java允许方法接收不定数量的参数,使用省略号`...`表示。 7. **数组简介** - 数组是一种存储相同类型元素的数据结构。 8. **一维数组的声明与初始化** - 定义数组的语法为:`数据类型[] 数组名 = new 数据...

    官方Java 5[1].0 API文档中文版.rar

    8. **可变参数长度方法(Variable Arity Methods)**:与变量参数相似,但应用于方法声明,允许方法接受不定数量的参数。 Java 5.0 API文档中文版详细列出了所有这些特性的使用方法,包括各个类的构造函数、方法、...

    JavaJDK1.5中文简体API文档

    - **变量长度参数(Varargs)**:允许在方法声明中使用`...`作为参数,简化了不定数量的参数传递。 - **增强的for循环(For-Each Loop)**:简化了遍历集合、数组等的数据结构。 3. **核心类库** - **`java.lang...

    corejava培训笔记

    - 可变长参数只能作为方法的最后一个参数,且不能与其他固定长度参数混淆。 7. **静态导入** - 静态导入(`import static`)允许直接使用类的静态成员,简化代码,但可能导致命名冲突。 这些知识构成了Java开发的...

    最新Java面试题

    - **可变参数的作用和特点**:可变参数允许方法接收不定数量的参数,这些参数会被打包成一个数组传递给方法。使用时只需在参数类型后面加上三个点`...`。 #### 第五章 面向对象 - **类和对象的关系**:类是对一类...

    Java Varargs 可变参数用法详解

    例如,在可变参数方法内部如果要将其传递给另一个可变参数方法,必须进行适当的包装或拆包操作,以防止编译器警告或错误。 此外,可变参数在Java中是利用数组实现的。因此,如果在可变参数内部创建了数组,这个数组...

    快速解决SpringMVC @RequestBody 用map接收请求参数的问题

    在 SpringMVC 中,使用 @RequestBody 注解可以将请求体中的数据转换为 Java 对象,但是在使用 map 接收请求参数时,经常会遇到一些问题。本文将讨论如何快速解决 SpringMVC @RequestBody 用map接收请求参数的问题。 ...

    年java基础加强.pptx

    可变参数是一种在方法声明中接受不定数量参数的机制。如Arrays.asList()方法,可以接收任意数量的参数。使用可变参数时,需要注意它们必须是参数列表的最后一个,并且在同一方法中不能有其他可变参数。 枚举类是...

    详细的java基础总结

    Java 5之后引入了可变参数的概念,允许方法接受数量不定的参数。例如: ``` public void print(int... numbers) { for (int num : numbers) { System.out.println(num); } } ``` - **命令行参数** Java...

    Java基础_方立勋.ppt

    可变参数是JDK 5的另一大创新,它允许方法接受不定数量的参数,如`public void foo(int... args)`。在方法内部,可变参数会被编译器自动封装为数组。可变参数必须是参数列表的最后一个,且一个方法只能有一个可变...

    Java基础加强Java基础加强Java基础加强

    4. **可变参数**:从JDK 1.5开始,Java允许方法接收不定数量的参数。通过在参数类型后面加上三个点(...),可以创建一个可变参数的方法。例如: ```java public void printNumbers(int... nums) { for (int num ...

    传智播客java基础加强(佟刚)

    - **可变参数**:允许方法接收数量不定的参数,参数以数组形式传递,提高了方法的灵活性。 - **枚举**:枚举类型是JDK 5.0新增的,用于表示有限的、固定的对象集合,增强了类型安全,并提供了更好的编译时检查。 ...

    java_API中文1.6,1.5

    5. **变量args**:在方法声明中,可以用`...`来接受不定数量的参数,简化了处理可变长度参数的方法。 6. **foreach循环(Enhanced for loop)**:增强了for循环,可以方便地遍历数组和集合。 7. **类型安全的异构...

    Java面试笔试题目汇总 (2).pdf

    8. **数组声明**:在Java中,正确声明数组的方式是B和E选项,其中B表示一个不定长度的一维数组,E表示一个二维的Object数组。 9. **包和import语句**:在同一个类中,`package`语句只能出现一次,且必须位于文件...

Global site tag (gtag.js) - Google Analytics