[Java语言特性]_[初级]_[可变参数的使用技巧]

Posted infoworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java语言特性]_[初级]_[可变参数的使用技巧]相关的知识,希望对你有一定的参考价值。

场景

  1. 在开发Java程序时,有些参数会是可变参数,比如String.format或者Java Web 框架jfinal里的Model方法find,就需要可变参数。问题来了,如果find参数sql字符串,或者format方法的format字符串是需要动态拼接的,那么它的可变参数值就是动态输入的,并不是固定值,怎么输入?

public static String format(String format, Object... args);
public  M findFirst(java.lang.String sql, java.lang.Object... paras);

说明

  1. Java的可变参数除了可以在编译时传入固定个数的参数之外,还可以传入数组作为动态值,这样就方便在运行时动态计算参数个数,这是重点。通过List<E>toArray方法,可以生成一个数组。注意,Java的整型数值可以自动装箱为Integer对象类型,这样就可以使用Object[]来封装不同类型的参数。
package com.example.string;

import java.util.ArrayList;
import java.util.List;

import org.junit.jupiter.api.Test;


public class VariableParameterTest {

    public void print(String str){
        System.out.println(str);
    }
    
    @Test
    public void testVariableParameter(){
        // variable parameter
        String str = "That Writing %s summary is %d task %s ";
        String result = String.format(str, "variable parameter",1,"today.");
        print(result);

        List<Object> params = new ArrayList<>();
        params.add("variable parameter");
        params.add(1);
        params.add("today");

        Object[] args = params.toArray();
        String result2 = String.format(str, args);
        print(result2);
    }
    
}

输出

That Writing variable parameter summary is 1 task today. 
That Writing variable parameter summary is 1 task today 

参考

1.jfinal

以上是关于[Java语言特性]_[初级]_[可变参数的使用技巧]的主要内容,如果未能解决你的问题,请参考以下文章

JAVA基础_可变参数

[Java]_[初级]_[使用正则高效替换字符串的多个占位符为多个值]

[Java]_[初级]_[使用正则高效替换字符串的多个占位符为多个值]

C语言宏定义实现可变参数

深度解刨C语言可变参数列表

java _io_文件的拷贝图片的拷贝可变参数try...with...resource面向