Why does this work:
List> list = new LinkedList();
while this gives a type dismatch error:
List
Try
List extends List>> list = new LinkedList>();
Note: you should be aware that when you use a collection like List you will only be able to use it in "read only" mode (except for adding null values).