可变参数 Java 中可变参数

现在需要编写一个求和的功能,但是不知道有几个参数,在调用的时候才知道有几个参数,请问这如何实现呢?
Java 给我们提供了一个 JDK 1.5 的新特性---可变参数
可变参数:定义方法的时候不知道方法的参数
格式:访问修饰符 返回值类型 方法名(参数类型... 参数名){}
注意:这里的变量其实是一个数组,如果一个方法有多个参数,还有可变参数,那么可变参数一定放在最后。

public class Test {

    public static void main(String[] args) {
int a = 10;
int b = 20;
int result = sum(a, b);
System.out.println("result:" + result); int c = 30;
result = sum(a, b, c);
System.out.println("result:" + result); int d = 40;
result = sum(a, b, c, d);
System.out.println("result:" + result); System.out.println("可变参数的方法:" + sum(10, 20, 30, 40, 50, 60, 70, 80, 90, 100));
System.out.println("可变参数的方法:" + sum(1, 1, 1, 1, 1, 1, 1, 1, 1, 1));
} private static int sum(int a, int b) {
return a + b;
} private static int sum(int a, int b, int c) {
return a + b + c;
} private static int sum(int a, int b, int c, int d) {
return a + b + c + d;
} private static int sum(int b, int... a) {
int s = 0;
for (int i : a) {
s += i;
}
return s + b;
}
}

运行结果

```
result:30
result:60
result:100
可变参数的方法:550
可变参数的方法:10
```

Java 中可变参数的更多相关文章

  1. 巩固java(六)----java中可变参数方法(非常实用哦)

    java提供了可变参数的方法,即方法的参数个数可以不确定,用"..."定义. import java.util.ArrayList; import java.util.List; ...

  2. 18、Java中可变参数

    从JDK 1.5之后,Java允许定义形参可变的参数 例如: public void test(int a,String ... books){ for(String book:books){ Sys ...

  3. Java中可变参数

    从java5开始出现了可变参数,这是对java方法及数组的拓展! 方法中可以接受的参数不再是固定个数的,而是随着具体需求传递的多少来决定. 定义格式: 返回值类型  方法名(参数类型 ... 形式参数 ...

  4. 对Java中可变参数的理解

    说明 可变参数:是DK1.5之后出现的新特性,其实可变参数是0.1.2.3.....个参数的数组 使用前提 当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数 使用格式 修饰符 ...

  5. java中可变长参数

    ** * Created by Lenovo on 2017/12/10. * java中可变长参数 */ public class reflect04 { //m1有一个int类型的可比变长参数 / ...

  6. 五分钟学Java:可变参数究竟是怎么一回事?

    在逛 programcreek 的时候,我发现了一些专注基础但不容忽视的主题.比如说:Java 的可变参数究竟是怎么一回事?像这类灵魂拷问的主题,非常值得深入地研究一下. 我以前很不重视基础,觉得不就 ...

  7. c 中可变参数的实现

    我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为:     例一: int   printf(   const   char*   format,   ... ...

  8. C语言中可变参数的函数(三个点,“...”)

    C语言中可变参数的函数(三个点,“...”) 本文主要介绍va_start和va_end的使用及原理. 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end ...

  9. [问题记录]Java关于可变参数重载问题的测试

    突然发现java的可变参数重载是存在歧义的,只是不知道java内部是怎么处理的,特意做如下实验: 测试代码如下: /** * Created by ieayoio on 16-3-1. */ publ ...

随机推荐

  1. MVC网站发布到 IIS

    接下来将发布成功的站点部署到iis7.0. 步骤如下: 1. 安装 Microsoft .net FrameWork 4.0安装包(网站开发时候使用的就是.net framework4.0框架); 2 ...

  2. 前端PHP入门-029-文件操作-掌握级别

    人生只有三天,活在昨天的人迷惑:活在明天的人等待:活在今天的人最踏实.你永远无法预测意外和明天哪个来得更早,所以,我们能做的,就是尽最大的努力过好今天.请记住:今天永远是昨天死去的人所期待的明天. f ...

  3. Tensorboard教程:显示计算图中节点信息

    Tensorboard显示计算图节点信息 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 强烈推荐Tensorflow实战Google深度学习框架 实验平台: Tensorflow1 ...

  4. jni里找不到刚添加的C++函数

    使用NDK开发,用到了JNI来连接C++和JAVA. 当C++方增加了一个新函数,jni访问此函数,eclipse会提示找不到改函数,然后前面打个红叉叉表示语法错误,从而阻碍了编译和运行. 当我选择清 ...

  5. tomcat8在centos7.5下配置开机启动

    本文参考这篇文章 一.在/etc/init.d下新建一个文件tomcat,并添加内容如下: #!/bin/sh # chkconfig: 345 99 10 # description: Auto-s ...

  6. Codechef Dynamic Trees and Queries

    Home » Practice(Hard) » Dynamic Trees and Queries Problem Code: ANUDTQSubmit https://www.codechef.co ...

  7. SSM框架使用-wrong

    mybatis手册 1. mybatis 绑定错误 如果出现: org.apache.ibatis.binding.BindingException: Invalid bound statement ...

  8. web开发之Servlet 三

    昨天我们学习了Servlet的运行过程和生命周期,那么今天我们学习下Servlet中非常重要的两个类:ServletConfig  ServletContext 我们可以看到,与顶层Servlet主动 ...

  9. Spring容器简介

    Spring 是面向 Bean 的编程(BOP,Bean Oriented Programming),提供了 IOC 容器通过配置文件或者注解的方式来管理对象之间的依赖关系. 控制反转模式(也称作依赖 ...

  10. python学习笔记(十三)之lambda表达式

    lambda表达式: 用法 lambda x : 2 * x + 1 其中:前面是参数,后面是返回值. >>> def ds(x): ... return 2 * x + 1 ... ...