What is the significance of ellipses java signature for multiple parameters?

543    Asked by AmyAvery in Java , Asked on Oct 10, 2022

Firstly, I am studying function with new type of signature and body, and in this code, I want to know, what type of object is values? It doesn't appear to be an array of strings based on my observation.

Secondly, is there any method that returns the name of the class a particular object is? I thought it might be tostring, but that returned Ljava.lang.String;@1540e19d in the code below. Don't understand this...


static double AddValues(String ... values) {
    double result = 0;
    Object o = values;
    System.out.println("XXXz");
    System.out.println(o.toString());


    for (String value : values)
    {
        double d = Double.parseDouble(value);
        result += d;
    }
    return result;
}


Answered by Arun Singh

values is an array of String. I'm not sure what observation led you to conclude otherwise. Variadic method parameters in ellipses Java collect the arguments into an array, as you can see in the Java 5 varargs documentation.


To find out the type of an object, use values.getClass().getName() (yields "[Ljava.lang.String;" indicating an array of String). You can use values.getClass().isArray() to test whether it is an array and values.getClass().getComponentType() to get the type of its elements.

See the array components documentation for more information.



Your Answer

Interviews

Parent Categories