[Java语言特性]_[初级]_[可变参数的使用技巧]
Posted infoworld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java语言特性]_[初级]_[可变参数的使用技巧]相关的知识,希望对你有一定的参考价值。
场景
- 在开发
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);
说明
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]_[初级]_[使用正则高效替换字符串的多个占位符为多个值]