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);
}

如果一个方法包含可变参数,那么可变参数一定是最后一个参数

比较下面三个例子


@Test
public void testSum()
{
List list =Arrays.asList("1","2","3","4");
System.out.println(list);
}

//结果是
// [1, 2, 3, 4]

@Test
public void testSum()
{
List list =Arrays.asList(1,2,3,4);
System.out.println(list);
}
//结果是
// [1, 2, 3, 4]

@Test
public void testSum()
{
int nums[] = {1,2,3,4,5};
List list =Arrays.asList(nums);
System.out.println(list);
}
//结果是
// [[[email protected]]

public static <T> List<T>
asList(T... a)

可以看出asList的参数是可变参数,且是对象(T是泛型,可以理解为Object)

例一和例二都是直接传入了几个对象(其中例二用到了封箱)

例三是传入了一个数组对象(基本数据类型数组就是一个特殊的对象

对于可变参数,一定要注意参数是基本数据类型还是对象类型

文章前面开头的例子是基本数据类型,后面的是对象类型

Java 可变参数,布布扣,bubuko.com

时间: 2025-01-21 08:16:14

Java 可变参数的相关文章

【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可变参数

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

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可变参数特性

可变参数:将要操作的元素作为参数传递,隐式将参数封装为数组 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); } } 代码很简单,没有难点,现在我想多加一个数,求三个整数的和并且输出

java可变参数列表的实现

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

java可变参数例子:求学生成绩信息,不确定课程数

可变参数特点: 1)...只能出现在参数列表的最后2)...位于变量类型和变量名之间3)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数 //可变参数也可用数组来解决这个问题 package Test; public class Student { private int []score; //各科成绩 private int scoreCount=0; //总课程数 //构造函数 Student(int id,String name,int...is

java 可变参数 和 静态导入

/** * * A:可变参数概述 * 定义方法的时候不知道该定义多少个参数 * B:格式 * 修饰符 返回值类型 方法名(数据类型- 变量名){} * C:注意事项: * 这里的变量其实是一个数组 * 如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个 */ ================================================================== 静态导入的概述和使用* A:静态导入* B:格式: * import static 包名