I have this question regarding generics.Can anybody explain me why the options 4 and 6[i know about this option]are correct?
Consider the following code:
import java.util.*;  
public class TestClass 
{  
    public static void main(String[] args)   
    {  
    // put declaration here      
    m.put("1", new ArrayList()); //1  
    m.put(1, new Object()); //2  
    m.put(1.0, "Hello");  //3  
    System.out.println(m);  
    }  
}  
How can 'm' be declared such that the above code will compile and run without errors?
- Map m = new TreeMap();
- Map<Object, Object> m = new TreeMap<Object, Object>();
- Map<Object, ?> map = new LinkedHashMap<Object, Object>();
- Map<Object, ? super ArrayList> m = new LinkedHashMap<Object, ArrayList>();will work if lines //2 and //3 are commented out.
- Map<Object, ? super ArrayList> m = new LinkedHashMap<Object, ArrayList>();will work if lines //1 and //3 are commented out.
- Map m = new HashMap();
 
     
     
     
    