Java:可变参数应该如何传参

郎家岭伯爵 2024年04月25日 312次浏览

前言

方法的入参为可变参数时,应该如何传参?

实现

理论

对于入参为可变参数的方法,在传参时把参数转为数组类型即可。

代码

package demo;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.List;

/**
 * @author 郎家岭伯爵
 * @time 2024/1/16 10:02
 */
public class Demo {
    public static void main(String[] args) throws Exception {
        // List类型
        List<String> myList = List.of("one", "two", "three");
        myMethod(myList.toArray(new String[0]));

        // String类型
        String s = "1,2,3";
        myMethod(s.split(","));

        // JSONObject类型
        JSONObject obj1 = new JSONObject();
        obj1.put("key1", "value1");
        JSONObject obj2 = new JSONObject();
        obj2.put("key2", "value2");
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(obj1);
        jsonArray.add(obj2);
        myMethod(jsonArray.toArray(new JSONObject[0]));

    }

    public static void myMethod(String... args) {
        for (String arg : args) {
            System.out.println(arg);
        }
    }

    public static void myMethod(JSONObject... args) {
        for (JSONObject arg : args) {
            System.out.println(arg);
        }
    }
}

输出:

one
two
three
1
2
3
{"key1":"value1"}
{"key2":"value2"}

总结

对于入参为可变参数的方法,在传参时把参数转为数组即可。