Java 可变参数Object... values

public List<?> find(final String queryString, final Object... values) throws DataAccessException

定义实参个数可变的方法 
只要在一个形参的“类型”与“参数名”之间加上三个连续的“.”(即“...”,英文里的句中省略号),就可以让它和不确定个实参相匹配。而一个带有这样的形参的方法,就是一个实参个数可变的方法。

清单1:一个实参个数可变的方法

  1. private static int sumUp(int... values) {
  2. }
  1. private static int sumUp(int... values) {
  2. }

注意,只有最后一个形参才能被定义成“能和不确定个实参相匹配”的。因此,一个方法里只能有一个这样的形参。另外,如果这个方法还有其它的形参,要把它们放到前面的位置上。

编译器会在背地里把这最后一个形参转化为一个数组形参,并在编译出的class文件里作上一个记号,表明这是个实参个数可变的方法。

清单2:实参个数可变的方法的秘密形态

  1. private static int sumUp(int[] values) {
  2. }
  1. private static int sumUp(int[] values) {
  2. }

由于存在着这样的转化,所以不能再为这个类定义一个和转化后的方法签名一致的方法。

参考博文:http://www.cnblogs.com/shishm/archive/2012/01/31/2332656.html

时间: 2024-10-11 16:46:47

Java 可变参数Object... values的相关文章

java的不定参数,可变参数Object ...

对于java中不定参数,或者是可变参数Object ... 这是JDK1.5的新特性 针对不定参数的其他问题,可以参考Java不定长度参数[http://blog.chinaunix.net/uid-200142-id-3124427.html]

Java 可变参数

可变参数 可变参数可以当成一个数组使用 public void sum(int ...nums){ int sum = 0; for(int i:nums) { sum +=i; } System.out.println(sum); } @Test public void testSum() { sum(1,2,3,4,5); } 可变参数的实参可以是数组(同上) @Test public void testSum() { int arr[] ={1,2,3,4,5}; sum(arr); }

【Simple Java】Java可变参数举例

什么是Java可变参数 可变参数是Java 1.5引入的一个特性,它允许一个方法接受任意数量的参数. package simplejava; public class Q25 { public static void print(String... s) { for (String a : s) System.out.println(a); } public static void main(String[] args) { print("a"); print("a"

Java 可变参数列表

1.可变参数列表的简单实现 当调用方法时,方法的参数个数或类型未知时,称其为可变参数列表.在以前的Java代码中,可以使用Object数组来实现这样的功能.因为,所有的类都是直接或间接继承于Object类. VarArgs.java package sample; class A1{} public class VarArgs { static void printArray(Object[] args){ for(Object obj:args) System.out.print(obj+"

java可变参数列表的实现

参数就是我们调用一个方法时需要传入得数据,在方法中可能需要参数协助处理数据或者对参数进行解析处理以达到我们希望得到的数据和结果. 平常我们在写一个方法时,我们能确定需要传入什么样的参数以及参数的个数,这样我们在实现这个方法的时候在确定参数的时候都会有明确的目标.但是有时候会有这种特殊情况,我们并不知道我们将要传入几个参数,或者说我们并不确定外部会传入多少参数.在这种情况下,我们就要用到可变参数列表.下面是可变参数方法的实现方法. 1.传入数组对象或者集合,这里只对传入数组对象进行简单说明,集合的

java可变参数

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

java可变参数特性

可变参数:将要操作的元素作为参数传递,隐式将参数封装为数组 public static void main(String[] args) { show(1,2); show(); show1("java",1,2,3); //顺序不能变 } public static void show(int... arr) { System.out.println(arr.length); //数组长度 } public static void show1(String str,int... ar

java可变参数方法重载的注意事项

1.可变参数方法与数组参数方法重载 public class MethodParams{ //带可变参数的方法 public void hello(String ...params) { System.out.println("执行带可变参数的方法,参数个数为:" + params.length); } //带数组参数的方法 public void hello(String[] params) { System.out.println("执行带数组参数的方法,数组长度为:&q

java可变参数总结

今天总结一下java中可变参数这个知识点.还是来看一个例子,现在我想写个方法来计算两个整形的和并且输出,这个方法很简单: public class KeBian { public static void main(String[] args) { sum(5,9); } public static void sum(int a,int b) { int sum = a+b; System.out.println(sum); } } 代码很简单,没有难点,现在我想多加一个数,求三个整数的和并且输出