Examveda
Examveda

Choose all the lines which if inserted independently instead of "//insert code here" will allow the following code to compile:
public class Test{   
        public static void main(String args[]){
	        add(); 
		add(1);
		add(1, 2); 
	}

	// insert code here
}

A. void add(Integer... args){}

B. static void add(int... args, int y){}

C. static void add(int args...){}

D. static void add(int[]... args){}

E. static void add(int...args){}

Answer: Option E

Solution(By Examveda Team)

var-args = variable number of arguments = 0 or many

void add(Integer... args){} is correct IF made "static" as it's called from a static context: main().
Var-args can be of both object(eg Integer) and primitive(eg int) types.

static void add(int... args, int y){} is correct IF its parameters' order is reversed.
If a method has both var-arg(0 or MAX 1) + non-var-args(0 or more) parameters then the var-arg parameter MUST come LAST!

static void add(int args...){} : "..." must come after the type of the var-arg parameter, not after its name

static void add(int[]... args){} : for this to be a correct declaration then add() should have been called something like this: "add(arr);" or "add(arr, arr);" where "arr" could be defined as "int[] arr = new int[5];"

static void add(int...args){} is a valid way to define var-args (there is no need to have any space between "..." and the type and name of the var-arg param)

Join The Discussion

Related Questions on Declaration and Access Control

Suppose a class has public visibility. In this class we define a protected method. Which of the following statements is correct?

A. This method is only accessible from inside the class itself and from inside all subclasses.

B. In a class, you cannot declare methods with a lower visibility than the visibility of the class in which it is defined.

C. From within protected methods you do not have access to public methods.

D. This method is accessible from within the class itself and from within all classes defined in the same package as the class itself.

What is the result of compiling and running the following code?

A. Compile error at line 1 (static x must be only accessed inside static methods)

B. Compile error at line 2 (constructors can't be static)

C. Compile error at line 3 (static methods can't invoke this)

D. Compile error at line 4 (invalid argument type for method main )

E. 44