Wildcards

Q.

What is the output of this program?

   
    import java.util.*;
    public class genericstack  {
        Stack  stk = new Stack ();
	public void push(E obj) {
            stk.push(obj);
	}
	public E pop() {
            E obj = stk.pop();
	    return obj;
	}
    }
    class Output {
        public static void main(String args[]) {
            genericstack  gs = new genericstack();
            gs.push(36);
            System.out.println(gs.pop());
        }
    }
A. H
B. Hello
C. Runtime Error
D. Compilation Error

Answer : Option D

Explanation :

genericstack's object gs is defined to contain a string parameter but we are sending 

an integer parameter, which results in compilation error.
Output:
$ javac Output.javac
$ java Output
Hello