Given:
3. import java.util.*; 
4. public class G1 { 
5. public void takeList(List<? extends String> list) { 
6. // insert code here 
7. } 
8. }
Which three code fragments, inserted independently at line 6, will compile? (Choose three.)
A.
list.add(“foo”);
B.
Object o = list;
C.
String s = list.get(0);
D.
list = new ArrayList<String>();
E.
list = new ArrayList<Object>();