object…object和object[]…object的区别

object…object

public int update(String sql, Object... params) throws SQLException {
        Connection conn = this.prepareConnection();
        return this.update(conn, true, sql, params);
    }

上面程序中传递的形参中有这样的一个写法:Object… params

Object …params这种参数定义是在不确定方法参数的情况下的一种多态表现形式。

即这个方法可以传递多个参数,这个参数的个数是不确定的。

这是JDK1.5新增语法,新特性,动态参数或者是可变参数的意思。

(1)使用…将参数声明成可变长参数。

(2)可变长参数必须是最后一个参数。

(3)可变参数同时可以跟固定的参数混合使用,但是一个方法的参数列表中最多只有一个不定长度的参数。

上面第2、3条必须满足,不然不能通过编译。

Object是所有类的基类,所以使用Object …objects这样的参数形式,允许一切继承自Object的对象作为参数。

Object[] obj

这是一个Object数组构成的参数形式。说明这个方法的参数是一个Object数组,至于这个数组中存储的元素,可以是继承自Object的所有类的对象。

当形参为Object[]数组时,调用该方法必须为一个数组

object…object和object[]…object的区别

日常使用不定参数时候基本是Object…可以等同于 Object[] obj一维数组理解的。

当形参为Object…objects时,调用就相当灵活了,可以不带参数,可以带一个参数或者多个参数,也可以带数组作为参数

二、怎样使用

private static int sumUp(int... values) {   
    int sum = 0;   
    for (int i = 0; i < values.length; i++) {   
        sum += values[i];   
    }   
    return sum;   
} 
public static void main(String[] args) {
  String ss=test("网页制作","设计欣赏","建站教程","网站优化");
  System.out.println(ss);
 }
 public static String test(String... params ) {
  StringBuilder s = new StringBuilder();
  for (String string : params) {
   s.append(string);
  }
  return s.toString();
 }

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/4267.html

(0)
江山如画的头像江山如画管理团队
从月薪3500到身价700万 我在上海的奋斗岁月
上一篇 2019年11月16日 下午2:04
大学英语课如何融入课程思政
下一篇 2019年11月20日 上午8:35

99%的人还看了以下文章

  • 程序设计基础(C语言)—教学设计、教案

    教学设计——程序设计基础 教学基本信息 课程名称 程序设计基础 性质 专业基础课 学分 3 学时 48 题目 数据类型 专业年级 软件工程专业一年级 教材 书名:C程序设计(第五版) 出版社:清华大学出版社    出版日期: 2017年8月 教学背景分析 一、学习内容分析: 本节课要介绍的知识点——数据类型比较简单,但都是概念。对于这些陌生的、枯燥的纯概念性…

    2020年4月10日
    14.1K0
  • 两个简单的Pycharm激活方法分享

    一、Pycharm激活码激活 优点:Window、Mac、Ubantu都稳定有效,关键是这种激活方式不会产生其他影响 缺点:需要修改hosts文件 修改hosts文件 将0.0.0.0 account.jetbrains.com添加到hosts文件最后,注意hosts文件无后缀,如果遇到无法修改或权限问题,可以采用覆盖的方法去替换hosts文件 修改后请检查…

    2020年3月14日
    7.2K0
  • 卷积神经网络 数据维度计算公式:输入输出关系、输出维度

    卷积神经网络 数据维度计算公式:输入输出关系、输出维度卷积神经网络 数据维度计算公式:输入输出关系、输出维度卷积神经网络 数据维度计算公式:输入输出关系、输出维度卷积神经网络 数据维度计算公式:输入输出关系、输出维度

    假设你有 5 个大小为 7×7、边界值为 0 的卷积核,同时卷积神经网络第一层的深度为 1。 此时如果你向这一层传入一个维度为 224x224x3 的数据,那么神经网络下一层所接收到的数据维度是( )。 A.218*218*5 B.217*217*8 C.217*217*3 D.220*220*5 在进行深度学习训练时,优化器会对模型的参数进行优化…

    2022年9月22日 编程开发
    15.3K3
  • GitHub是什么?GitHube有什么用?GitHub学习入门(精)

    GitHub是什么? gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。 Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。  好吧,我相信看到这里你已经晕了,这也是我一开始看那些所谓经典教程的感受。 简单来…

    2018年8月24日
    8.9K0
  • 实用sql查询语句详解1:给列取别名、查询部分行、多列排序

    SQL(Structured Query Language)是用于访问和处理数据库的标准计算机语言,是所有数据库查询的语言,无论是高级查询还是低级查询,SQL查询语句的需求都是最常用的。 文章介绍了包括查询全部的行和列、给列取别名、查询部分行、多列排序、使用函数查询等。 SQL数据查询-SELECT语句基本结构 语句语法简单归纳为: SELECT selec…

    2018年2月5日
    10.4K0
  • 开发软件,编程语言Java和C++选哪个?

    根据网络调查数据:编程语言排名前三的是Java、C#、C++。 其中Java使用者比例最高,为42.82%,是C#的两倍还要多。 紧跟其后的是C#,比例为17.33%。 排名第三的C++则有14.35%的比例。 JAVA和C++都是面向对象语,都能够实现面向对象思想(封装,继乘,多态)。而由于C++为了照顾大量的C语言使用者,而兼容了C,使得自身仅仅成为了带…

    2021年2月16日
    6.8K0

发表回复

登录后才能评论