Hi i found this question in Kathy Sierra / Bert Bates monk exam.
1. import java.util.*; 2. public class Fruits { 3. public static void main(String [] args) { 4. Set c1 = new TreeSet(); 5. Set o1 = new TreeSet(); 6. bite(c1); 7. bite(o1); 8. } 9. // insert code here 10. } 11. class Citrus { } 12. class Orange extends Citrus { }
Which, inserted independently at line 9, will compile? (Choose all that apply.)
A). public static void bite(Set<?> s) { } B). public static void bite(Set<Object> s) { } C). public static void bite(Set<Citrus> s) { } D). public static void bite(Set<? super Citrus> s) { } E). public static void bite(Set<? super Orange> s) { } F). public static void bite(Set<? extends Citrus> s) { } G). Because of other errors in the code, none of these will compile.
Ans given in mock exam is this A, E, and F are correct uses of generics with (bounded) wildcards.
But when i compile all options independently there is no compile time error for all options.There are compile warnings only for some options.
Please help. Thanks
Murali Mohan
Ranch Hand
Joined: Jan 09, 2006
Posts: 66
posted
0
Yes Gowher! You are right! I made a similar mistake in the exam.
Every answer is compiling fine but some are giving warnings.