java 可变参数获取参数名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 可变参数获取参数名相关的知识,希望对你有一定的参考价值。

public static String isParamsEmpty(String ... params)
StringBuffer buf = new StringBuffer("") ;

for (String str : params)
if (StringUtils.isNotBlank(str) == false)
buf.append("参数中缺少"+str+"项").append(",");


return buf.toString();

我写的方法,目的是为了判断传入的参数,把参数为空的参数名都返回来。
但是我发现,用了可变参数,只能获取参数的‘值’,参数名没法获取。请问该怎么办呢?

参考技术A 根本没有名字啊,我调用你的方法转过去是一个value,是一个值。
又不是定义一个方法,定义的传过来的参数叫什么名字。
例如定义方法 A(string one,int two)
但是我用这个方法的时候 只要是个string int给你就好了,根本不会管名字的,你定义的什么名字自己用的时候就是什么名字,实际的值还是我传递给你的值。本回答被提问者和网友采纳
参考技术B 用map,传参数怎么可能获得你定义的名字

java-可变参数

/*
使用前提:
    当前方法的参数的数据类型已经确定,但是参数的个数不确定,就可以使用可变参数
 使用格式: 定义方法是使用
    修饰符 返回类型 方法名(数据类型... 变量名){}

  可变参数的原理:
    可变参数底层就是一个数组,根据传递参数格式不同,会创建不同长度
    的数组,来存储这些参数
    传递的参数个数可以是0个和多个


    注意事项:
        一个方法的参数列表,只能有一个可变参数
        如果方法的参数有多个,那么可变参数必须卸载参数列表的末尾
    特殊写法:
       Object...obj
 */

 

public class Demo {
    public static void main(String[] args) {
        int i = add(1,1,2,3,4,4,4);
//        add()会创建一个长度为0的数组
        System.out.println(i);
    }
//    定义计算0-n个int整数的方法
//    已经知道数据类型为int,但是参数个数不确定
    public static  int add(int...arr){
        int sum =0;
        System.out.println(arr);//[I@1b6d3586底层是一个数组
        System.out.println(arr.length);
        for (int i :arr){
            sum = sum +i;
        }
        return sum;
    }
}

结果:

[I@1b6d3586
7
19

以上是关于java 可变参数获取参数名的主要内容,如果未能解决你的问题,请参考以下文章

java-可变参数

java-可变参数

Java 之 可变参数

java可变参数

Java中可变参数

对Java中可变参数的理解