`
langgufu
  • 浏览: 2308812 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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)的以数组为参数的方法,编译器就会提示你方法定义重复。道理就在这里。

分享到:
评论

相关推荐

    java-框架探秘

    本章节《java项目实践开发指南》的"Chapter7 框架探秘"着重探讨了Java中的核心框架及其在实际项目开发中的应用。框架的理解与熟练使用对于Java程序员来说至关重要,因为它们构成了现代软件开发的基础。 首先,我们...

    探秘Java 如何像计算机科学家一样思考 pdf

    探秘Java 如何像计算机科学家一样思考 pdf

    Java中国象棋博弈程序探秘NetBeans工程

    Java中国象棋博弈程序探秘NetBeans工程是一个深入学习Java GUI编程和算法设计的实践项目。这个项目基于Java Swing库构建,Swing是Java提供的一个用于创建桌面应用程序的丰富的图形用户界面(GUI)工具包。它允许...

    <>练习分析与解答

    《探秘Java》这本书以其独特的视角和方法,指导读者不仅仅学习Java这门语言的语法,更深入理解其背后的逻辑思考方式,从而像计算机科学家一样思考问题。 从“方法”这一核心概念开始,Java的函数被赋予了更为丰富的...

    《Java 基础之 List 深度探秘》.docx

    《Java 基础之 List 深度探秘》

    探秘Java练习分析与解答

    在“探秘Java练习分析与解答”中,我们主要探讨的是Java编程语言的学习与实践,通过对各个章节的练习进行分析和解答,以深入理解和掌握Java的核心概念和技术。以下是各章节练习涉及的知识点详解: 第3章:方法 在这...

    [探秘Java:如何像计算机科学家一样思考].(唐尼).张平.扫描版.pdf

    《探秘Java:如何像计算机科学家一样思考》这本书由唐尼撰写,张平翻译,旨在帮助读者以计算机科学家的视角理解和掌握Java编程语言。通过深入阅读这本书,我们可以挖掘出一系列重要的Java编程和计算机科学思维的知识...

    探秘Java中StringStringBuilder以及S

    在Java编程语言中,字符串处理是一项非常常见的任务。在Java中,有三种主要的类用于创建和操作字符串:`String`, `StringBuilder` 和 `StringBuffer`。这些类各自有不同的特性和适用场景,对于理解Java字符串操作至...

    体验引擎 游戏设计全景探秘

    1972年,雅达利公司推出了街机游戏Pong。之后,游戏行业历经了几十年的风风雨雨和几许轮回,依然方兴未艾。多少年以来,无论是俄罗斯方块,还是魔兽世界,游戏制作者面临的...说不定在某一页,就会不由自主地产生共鸣。

    MATLAB函数的输入参数传递方式探秘_MATLAB函数的输入参数传递方式探秘_

    MATLAB的函数参数究竟用哪一种方式呢? 查看帮助文档得到结果:如果函数内部试图修改输入参数的值则为值传递

    探秘 Java Springboot 在学生教务管理系统中的高效并发处理机制

    探秘 Java Springboot 在学生教务管理系统中的高效并发处理机制

    异常捕获者 - 深入探秘Java异常的分类与处理机制

    ### 异常捕获者 - 深入探秘Java异常的分类与处理机制 #### 第一章:初识异常家族 在Java编程语言中,异常处理是一项非常重要的功能,它帮助开发者有效地处理运行时发生的意外情况。Java中的异常分为两大类:**受检...

    探秘Java并发:Atomic&amp;Unsafe的强大魔法

    本文深入解析Java并发编程中的两个关键类:Atomic和Unsafe。这些类在提高Java并发操作的效率和安全性方面扮演着至关重要的角色。原子操作的核心:原子操作是不可分割的操作单元,确保数据的一致性和完整性。Java通过...

    JAVA学习手册CHM版

    全书共20章,分为4篇进行介绍,第1篇为基础篇,包括Java开发前奏、搭建Java开发环境、 扎实Java语言基本语法、掌握算法和流程控制、使用Eclipse开发工具、探秘面向对象程序设计、初探Java数组;第2篇为核心篇,包括...

    源码探秘Cpython.pdf

    探秘 CPython 对象模型 Python 中一切皆对象,这里的对象究竟是什么?在 Python 的世界里,一切都是对象。整数是一个对象、字符串是一个对象、字典是一个对象,甚至 int、str、list 等等,再加上我们使用 class ...

    全景探秘游戏设计艺术

    【全景探秘游戏设计艺术】是一本深入探讨游戏设计领域知识的专业书籍,旨在为读者揭示游戏开发背后的艺术与科学。作者Jesse Schell是游戏设计领域的权威专家,他的著作涵盖了从概念构思到实际开发的全过程,使读者...

    NTFS文件系统扇区存储探秘_扫描完整版

    《NTFS文件系统扇区存储探秘》主要内容包括:介绍NTFS文件系统优越的性能特征;介绍作者为了探索NTFS文件系统的存储特点编写的21个WIN32工具程序;使用作者编写的WIN32工具程序,探秘NTFS文件系统的扇区存储规律。 ...

Global site tag (gtag.js) - Google Analytics