Java的变参函数实现实际上参数是一个数组,今天我们就简单的学习一下它的用法。

java中的变参函数

一、它的使用方法如下:

public class VariableParam {
private static void variableParam1(Object... args) {
for (Object v : args) {
System.out.print(v.toString() + " ");
}
System.out.println(args.length); // 可以看到args和数组一样有length属性
} @Test
public void param_1() {
// 如果是List<String>
List<String> lists1 = new ArrayList<>();
lists1.add("huhx");
lists1.add("linux");
variableParam1(lists1); // [huhx, linux] 1 // 如果是List<Object>
List<Object> lists2 = new ArrayList<>();
lists2.add("huhx");
lists2.add("linux");
variableParam1(lists2); // [huhx, linux] 1 // 如果是数组
String[] arrays1 = new String[]{"huhx", "linux"}; // huhx linux 2
variableParam1(arrays1); // 如果是数组
Object[] arrays2 = new Object[]{"huhx", "linux"};
variableParam1(arrays1); // huhx linux 2 // 如果是参数
variableParam1("huhx", "linux"); // huhx linux 2
}
}

二、一个简单的使用案例

MessageFormat的format方法的第二个参数就是一个变参。它的方法定义:

public static String format(String pattern, Object ... arguments) {
MessageFormat temp = new MessageFormat(pattern);
return temp.format(arguments);
}

以下是一个使用的案例。

public String baseReplaceFromArray(String string, List<String> list) {
return MessageFormat.format(string, transListInfoArrays(list));
} public static String[] transListInfoArrays(List<String> list) {
String[] arrays = new String[list.size()];
list.toArray(arrays);
return arrays;
} @Test
public void baseReplaceFromArray_test() {
List<String> list = new ArrayList<>();
list.add("huhx");
list.add("L。");
System.out.println(baseReplaceFromArray("{0} love {1}", list)); // huhx love L。
}

友情链接

java基础---->java中变参函数的使用的更多相关文章

  1. java基础---->java中正则表达式二

    跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...

  2. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  3. Java基础-Java中的堆内存和离堆内存机制

    Java基础-Java中的堆内存和离堆内存机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  4. Java基础-Java中的内存分配与回收机制

    Java基础-Java中的内存分配与回收机制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一. 二.

  5. Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock)

    Java基础-Java中的并法库之重入读写锁(ReentrantReadWriteLock) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在学习Java的之前,你可能已经听说过读 ...

  6. Java基础-Java中的并法库之线程池技术

    Java基础-Java中的并法库之线程池技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是线程池技术 二.

  7. Java基础-Java中23种设计模式之常用的设计模式

    Java基础-Java中23种设计模式之常用的设计模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.设计模式分类 设计模式是针对特定场景给出的专家级的解决方案.总的来说设 ...

  8. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

  9. Java基础__Java中自定义集合类

    Java基础__Java中集合类 传送门 自定义MyArrayList集合实现:增加数据.取数据.查看集合中数据个数方法 package com.Gary; public class MyArrayL ...

  10. Java基础(中)

    面向对象基础 面向对象和面向过程的区别 两者的主要区别在于解决问题的方式不同: 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题. 面向对象会先抽象出对象,然后用对象执行方法的方式 ...

随机推荐

  1. valgrind: failed to start tool 'memcheck' for platform 'amd64-linux

    valgrind运行错误 问题描述 valgrind运行时,无法找到相关工具文件,具体报错如下 valgrind: failed to start tool 'memcheck' for platfo ...

  2. USB 转LAN AX88772B 模块驱动添加记录

    使用 AX88772B 模块进行扩展百兆网口. 资料地址: http://www.asix.com.tw/cs/products.php?op=pItemdetail&PItemID=105; ...

  3. buildroot 使用本地交叉编译器记录

    继上一次glibc bug 事件后,剑锋就说文件系统要用统一的交叉编译器.所以今天就试了一下,便记录一下 在官网下载干净的 buildroot 进入解压后的 buildroot 目录 步骤: make ...

  4. Apache HttpComponents 文件上传例子

    /* * ==================================================================== * * Licensed to the Apache ...

  5. CSS编写指导规范和建议

    在参与规模庞大.历时漫长且参与人数众多的项目时,所有开发者遵守如下规则极为重要: 保持 CSS 易于维护 保持代码清晰易懂 保持 CSS 的可拓展性 为了实现这一目标,我们要采用诸多方法. 本文档第一 ...

  6. C++对析构函数的误解

    C++析构前言 析构函数在什么时候会自动被调用,在什么时候需要手动来调用,真不好意思说偶学过C++…今日特此拨乱反正. C++析构误解正文 对象在构造的时候系统会分配内存资源,对一些数据成员进行初始化 ...

  7. php 三级连动及 php+ajax的调试方法

    js获得select的value值 把这个值以ajax的方法传给外页php处理 php得到这个value值,把它作为查询条件进行处理 ajax很神奇,会把这个结果显现出来 总之,ajax负责传值和显示 ...

  8. 实验五 ASP.NET状态管理和应用程序配置 总结

    这次实验内容是对ASP.NET配置系统的了解和使用,还有就是对Application.Session.ViewState对象的应用.首先,我想说ASP.NET配置系统真的大大超乎我的想象,我以为会是上 ...

  9. Java 的JSON、XML转换方法——目录索引(转)

    JSON及XML的Java序列化.反序列化(转换)在WebService.Ajax数据传递中,用得比较多.如:在用ExtJS.jQuery.mootools以及一些WebService时,你可以需要用 ...

  10. Spring-MVC案例:Spitter的笔记

    源码地址:https://github.com/Young4Dream/yan/tree/master/Maven_spittr 笔记: 1.当DispatcherServlet启动时,会创建Spri ...