I have this pseudo code :
Example A
Interface Option
Class OptionImplementer implements Option
ArrayList<ArrayList<? extends Option>> test = new ArrayList<ArrayList<OptionImplementer>>(); <-- Fails?
Why does it fail? Child does implement Option, and I've also tried Super keyword instead of extends.
As "bonus" question, these constructor signatures are postulated to have same erasure:
Example B
public void test(ArrayList<ArrayList<? extends Option>> test) {
}
public void test(ArrayList<ArrayList<OptionImplementer>> test) {
}
Example A or B should work. A fails so be B should work...