java中String的可变参数

学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!

基本介绍

可变参数

JDK1.5增加了新特性,可变参数,适用于参数个数不确定,类型确定的情况,java把可变参数当做数组来处理。

注意:可变参数必须位于最后一项。

原因:当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不确定,所以当其后边还有相同类型的参数时,java无法区分传入的参数是前一个可变参数,还是后一个参数,所以只能让可变参数位于最后一项。

特点

(1) 只能出现在参数列表的最后;
(2) …位于变量类型和变量名之间,前后有无空格都可以;
(3) 调用可变参数的方法时,编译器为该可变参数创建了一个数组,在方法体中以数组的形式访问可变参数。

源码引用

Character.java

private UnicodeBlock(String idName, String... aliases) {
        this(idName);
        for (String alias : aliases)
            map.put(alias, this);
    }

场景应用

加和处理

public class CharacterSource {

    List<String> list = new ArrayList<>();

    public static void main(String[] args) {
        Character c = new Character('c');

        CharacterSource source = new CharacterSource("a","b","c","d");
        System.out.println(Arrays.toString(source.list.toArray()));
    }

    public CharacterSource(String ... alias){
        for (String str : alias){
            this.list.add(str);
        }
    }
}

参数校验

/**
 * 校验json数据是否为空
 * @param param
 * @param paramKeyArray
 * @return
 */
public static WebResult checkParam(JSONObject param, String... paramKeyArray){
    WebResult webResult = new WebResult();
    webResult.ok();
    if(param != null) {
        List<String> nullParamList = new ArrayList<>();
        String paramKey = "";
        for(int i = 0; i < paramKeyArray.length; i ++) {
            paramKey = paramKeyArray[i];
            System.out.println(param.getString(paramKey));
            if(StringUtils.isEmpty(param.getString(paramKey))){
                nullParamList.add(paramKey);
            }
        }
        if(! nullParamList.isEmpty()) {
            StringBuffer sb = new StringBuffer();
            sb.append("参数[");
            int i = 0;
            for(String s : nullParamList) {
                if(i != 0) {
                    sb.append(",");
                }
                sb.append(s);
                i ++;
            }
            sb.append("]不能为空");
            webResult= new WebResult();
            webResult.fail(sb.toString());
        }
    }
    return webResult;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曾卫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值