Java “params” in method signature?

前端 未结 3 1636
无人及你
无人及你 2020-11-29 02:49

In C#, if you want a method to have an indeterminate number of parameters, you can make the final parameter in the method signature a params so that the method

相关标签:
3条回答
  • 2020-11-29 03:04

    In Java it's called varargs, and the syntax looks like a regular parameter, but with an ellipsis ("...") after the type:

    public void foo(Object... bar) {
        for (Object baz : bar) {
            System.out.println(baz.toString());
        }
    }
    

    The vararg parameter must always be the last parameter in the method signature, and is accessed as if you received an array of that type (e.g. Object[] in this case).

    0 讨论(0)
  • 2020-11-29 03:19

    This will do the trick in Java

    public void foo(String parameter, Object... arguments);

    You have to add three points ... and the varagr parameter must be the last in the method's signature.

    0 讨论(0)
  • 2020-11-29 03:23

    As it is written on previous answers, it is varargs and declared with ellipsis (...)

    Moreover, you can either pass the value types and/or reference types or both mixed (google Autoboxing). Additionally you can use the method parameter as an array as shown with the printArgsAlternate method down below.

    Demo Code

    public class VarargsDemo {
    
        public static void main(String[] args) {
            printArgs(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
            printArgsAlternate(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
        }
    
        private static void printArgs(Object... arguments) {
            System.out.print("Arguments: ");
            for(Object o : arguments)
                System.out.print(o + " ");
    
            System.out.println();
        }
    
        private static void printArgsAlternate(Object... arguments) {
            System.out.print("Arguments: ");
    
            for(int i = 0; i < arguments.length; i++)
                System.out.print(arguments[i] + " ");
    
            System.out.println();
        }
    
    }
    

    Output

    Arguments: 3 true Hello! true 25.3 a X 
    Arguments: 3 true Hello! true 25.3 a X 
    
    0 讨论(0)
提交回复
热议问题